【问题标题】:Android: How to replace deprecated HttpRequestExecutorAndroid:如何替换已弃用的 HttpRequestExecutor
【发布时间】:2015-12-11 14:57:35
【问题描述】:

我正在尝试从我的 Android 项目中删除 HttpClient api 并转换为使用 HttpURLConnection。

在旧的 API 中,我使用了 HttpRequestExecutor,在应用下载和上传时更改通知栏中的一些图标

this.httpclient = new DefaultHttpClient(httpParameters){
        @Override
        protected HttpRequestExecutor createRequestExecutor() {
            return new HttpRequestExecutor(){

                @Override
                protected HttpResponse doSendRequest(HttpRequest request,
                        HttpClientConnection conn, HttpContext http_context)
                                throws IOException, HttpException {

                    EventsBroadcaster.broadcastConnectionUploading(context);
                    return super.doSendRequest(request, conn, http_context);
                }

                @Override
                protected HttpResponse doReceiveResponse(
                        HttpRequest request, HttpClientConnection conn,
                        HttpContext http_context) throws HttpException,
                        IOException {

                    EventsBroadcaster.broadcastConnectionDownloading(context);
                    return super.doReceiveResponse(request, conn, http_context);
                }
            };
        }
    };

如何使用 HttpURLConnection 做同样的事情?

【问题讨论】:

标签: java android android-networking androidhttpclient android-httptransport


【解决方案1】:

`OkHttpClient 客户端 = 新的 OkHttpClient();

    MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
    RequestBody body = RequestBody.create(mediaType, "Your Body");
    Request request = new Request.Builder()
            .url("Your url")
            .post(body)
            .addHeader("add as many add headers as u want")
            .build();
    client.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(@NotNull Call call, @NotNull IOException e) {
            //What should happen if failed
        }

        @Override
        public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
            //what should happen if it is successful
        }
    }); `

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 2020-02-27
    • 2018-07-05
    • 1970-01-01
    • 2014-01-10
    • 2019-12-05
    相关资源
    最近更新 更多