Search in sources :

Example 1 with HttpResponse

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);
        }
    });
}
Also used : Call(retrofit2.Call) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) IOException(java.io.IOException) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Example 2 with HttpResponse

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());
        }
    });
}
Also used : Call(okhttp3.Call) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) BufferedSink(okio.BufferedSink) IOException(java.io.IOException) ProgressResponseBody(com.qiyei.sdk.https.server.ProgressResponseBody) ProgressResponseBody(com.qiyei.sdk.https.server.ProgressResponseBody) ResponseBody(okhttp3.ResponseBody) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) Response(okhttp3.Response) IHttpTransferCallback(com.qiyei.sdk.https.server.IHttpTransferCallback) IHttpCallback(com.qiyei.sdk.https.server.IHttpCallback) Callback(okhttp3.Callback) File(java.io.File) BufferedSource(okio.BufferedSource)

Example 3 with HttpResponse

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());
        }
    });
}
Also used : Call(okhttp3.Call) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) BufferedSink(okio.BufferedSink) IOException(java.io.IOException) ProgressResponseBody(com.qiyei.sdk.https.server.ProgressResponseBody) ProgressResponseBody(com.qiyei.sdk.https.server.ProgressResponseBody) ResponseBody(okhttp3.ResponseBody) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) Response(okhttp3.Response) IHttpTransferCallback(com.qiyei.sdk.https.server.IHttpTransferCallback) IHttpCallback(com.qiyei.sdk.https.server.IHttpCallback) Callback(okhttp3.Callback) File(java.io.File) BufferedSource(okio.BufferedSource)

Example 4 with HttpResponse

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"));
                    }
                }
            });
        }
    });
}
Also used : HttpResponse(com.qiyei.sdk.https.server.HttpResponse) Response(okhttp3.Response) Call(okhttp3.Call) IHttpTransferCallback(com.qiyei.sdk.https.server.IHttpTransferCallback) IHttpCallback(com.qiyei.sdk.https.server.IHttpCallback) Callback(okhttp3.Callback) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) IOException(java.io.IOException) IOException(java.io.IOException)

Example 5 with HttpResponse

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"));
                    }
                }
            });
        }
    });
}
Also used : HttpResponse(com.qiyei.sdk.https.server.HttpResponse) Response(okhttp3.Response) Call(okhttp3.Call) IHttpTransferCallback(com.qiyei.sdk.https.server.IHttpTransferCallback) IHttpCallback(com.qiyei.sdk.https.server.IHttpCallback) Callback(okhttp3.Callback) HttpResponse(com.qiyei.sdk.https.server.HttpResponse) IOException(java.io.IOException) IOException(java.io.IOException)

Aggregations

HttpResponse (com.qiyei.sdk.https.server.HttpResponse)7 IOException (java.io.IOException)7 IHttpCallback (com.qiyei.sdk.https.server.IHttpCallback)4 IHttpTransferCallback (com.qiyei.sdk.https.server.IHttpTransferCallback)4 Call (okhttp3.Call)4 Callback (okhttp3.Callback)4 Response (okhttp3.Response)4 ProgressResponseBody (com.qiyei.sdk.https.server.ProgressResponseBody)3 File (java.io.File)3 InvocationTargetException (java.lang.reflect.InvocationTargetException)3 ResponseBody (okhttp3.ResponseBody)3 Call (retrofit2.Call)3 BufferedSink (okio.BufferedSink)2 BufferedSource (okio.BufferedSource)2 MyInterceptor (com.qiyei.sdk.https.server.MyInterceptor)1 BufferedInputStream (java.io.BufferedInputStream)1 FileOutputStream (java.io.FileOutputStream)1 InputStream (java.io.InputStream)1 Field (java.lang.reflect.Field)1 OkHttpClient (okhttp3.OkHttpClient)1