Search in sources :

Example 1 with IHttpTransferCallback

use of com.qiyei.sdk.https.server.IHttpTransferCallback 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 2 with IHttpTransferCallback

use of com.qiyei.sdk.https.server.IHttpTransferCallback 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)

Aggregations

HttpResponse (com.qiyei.sdk.https.server.HttpResponse)2 IHttpCallback (com.qiyei.sdk.https.server.IHttpCallback)2 IHttpTransferCallback (com.qiyei.sdk.https.server.IHttpTransferCallback)2 ProgressResponseBody (com.qiyei.sdk.https.server.ProgressResponseBody)2 File (java.io.File)2 IOException (java.io.IOException)2 Call (okhttp3.Call)2 Callback (okhttp3.Callback)2 Response (okhttp3.Response)2 ResponseBody (okhttp3.ResponseBody)2 BufferedSink (okio.BufferedSink)2 BufferedSource (okio.BufferedSource)2