use of com.qiyei.sdk.https.server.HttpResponse in project EssayJoke by qiyei2015.
the class RetrofitEngine method enqueueGetCall.
@Override
public <T, R> void enqueueGetCall(final HttpTask<T> task, final IHttpCallback<R> callback) {
Object params = HttpUtil.gsonToGetParams(task.getRequest());
// 构造Call
Call call = buildCall(task, params);
if (call == null) {
return;
}
// 设置task到okHttp拦截器中
setOkHttpInterceptorTag(call, task);
// 将任务加到队列里面
HttpCallManager.getInstance().addCall(task.getTaskId(), call);
// 发起请求
call.enqueue(new Callback<R>() {
@Override
public void onResponse(Call<R> call, Response<R> response) {
// 移除task
HttpCallManager.getInstance().removeCall(task.getTaskId());
HttpResponse<R> obj = new HttpResponse<>(response.body());
callback.onSuccess(obj);
}
@Override
public void onFailure(Call<R> call, Throwable t) {
// 移除task
HttpCallManager.getInstance().removeCall(task.getTaskId());
callback.onFailure((Exception) t);
}
});
}
use of com.qiyei.sdk.https.server.HttpResponse in project EssayJoke by qiyei2015.
the class OkHttpEngine method enqueueDownloadCall.
@Override
public <T, R> void enqueueDownloadCall(final HttpTask<T> task, final IHttpTransferCallback<R> callback) {
Call call = OkHttpHelper.buildDownloadCall(mClient, task);
if (call == null) {
return;
}
// 添加call
HttpCallManager.getInstance().addCall(task.getTaskId(), call);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
ResponseBody responseBody = new ProgressResponseBody(response.body(), callback);
// read the body to file
BufferedSource source = responseBody.source();
File outFile = new File(task.getRequest().getFilePath());
outFile.delete();
outFile.getParentFile().mkdirs();
outFile.createNewFile();
BufferedSink sink = Okio.buffer(Okio.sink(outFile));
source.readAll(sink);
sink.flush();
source.close();
mHandler.post(new Runnable() {
@Override
public void run() {
String success = "success";
final HttpResponse responseObj = new HttpResponse(success);
callback.onSuccess(responseObj);
}
});
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
}
});
}
use of com.qiyei.sdk.https.server.HttpResponse in project EssayJoke by qiyei2015.
the class OkHttpEngine method enqueueUploadCall.
@Override
public <T, R> void enqueueUploadCall(final HttpTask<T> task, final IHttpTransferCallback<R> callback) {
Call call = OkHttpHelper.buildUploadCall(mClient, task, callback);
if (call == null) {
return;
}
// 添加call
HttpCallManager.getInstance().addCall(task.getTaskId(), call);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
ResponseBody responseBody = new ProgressResponseBody(response.body(), callback);
// read the body to file
BufferedSource source = responseBody.source();
File outFile = new File(task.getRequest().getFilePath());
outFile.delete();
outFile.getParentFile().mkdirs();
outFile.createNewFile();
BufferedSink sink = Okio.buffer(Okio.sink(outFile));
source.readAll(sink);
sink.flush();
source.close();
mHandler.post(new Runnable() {
@Override
public void run() {
String success = "success";
final HttpResponse responseObj = new HttpResponse(success);
callback.onSuccess(responseObj);
}
});
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
}
});
}
use of com.qiyei.sdk.https.server.HttpResponse in project EssayJoke by qiyei2015.
the class OkHttpEngine method enqueuePostCall.
@Override
public <T, R> void enqueuePostCall(final HttpTask<T> task, final IHttpCallback<R> callback) {
Call call = OkHttpHelper.buildPostCall(mClient, task);
if (call == null) {
return;
}
// 添加call
HttpCallManager.getInstance().addCall(task.getTaskId(), call);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
String result = null;
if (response != null && response.isSuccessful()) {
result = response.body().string();
}
final R obj = (R) HttpUtil.parseJson(result, task.getListener().getClass(), true);
final HttpResponse<R> responseObj = new HttpResponse<R>(obj);
mHandler.post(new Runnable() {
@Override
public void run() {
if (responseObj != null) {
callback.onSuccess(responseObj);
} else {
callback.onFailure(new Exception("response is null"));
}
}
});
}
});
}
use of com.qiyei.sdk.https.server.HttpResponse in project EssayJoke by qiyei2015.
the class OkHttpEngine method enqueueGetCall.
@Override
public <T, R> void enqueueGetCall(final HttpTask<T> task, final IHttpCallback<R> callback) {
Call call = OkHttpHelper.buildGetCall(mClient, task);
if (call == null) {
return;
}
// 添加call
HttpCallManager.getInstance().addCall(task.getTaskId(), call);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
mHandler.post(new Runnable() {
@Override
public void run() {
callback.onFailure(e);
}
});
}
@Override
public void onResponse(Call call, final Response response) throws IOException {
// 移除call
HttpCallManager.getInstance().removeCall(task.getTaskId());
String result = null;
if (response != null && response.isSuccessful()) {
result = response.body().string();
}
final R obj = (R) HttpUtil.parseJson(result, task.getListener().getClass(), true);
final HttpResponse<R> responseObj = new HttpResponse<R>(obj);
mHandler.post(new Runnable() {
@Override
public void run() {
if (responseObj != null) {
callback.onSuccess(responseObj);
} else {
callback.onFailure(new Exception("response is null"));
}
}
});
}
});
}
Aggregations