如何在下面的 Apache HttpClient 代码中使用 OkHttpClient

Posted

技术标签:

【中文标题】如何在下面的 Apache HttpClient 代码中使用 OkHttpClient【英文标题】:How to use OkHttpClient on below Apache HttpClient code 【发布时间】:2014-03-30 16:57:16 【问题描述】:
HttpClient httpClient = new DefaultHttpClient();
         HttpContext localContext = new BasicHttpContext();
         HttpPut put = new HttpPut("url");
         put.addHeader("X-Apikey","");
         StringEntity se = new StringEntity( version.toString());  
         se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
         put.addHeader("Accept", "application/json");
         put.addHeader("Content-type", "application/json");
         put.setEntity(se);


         try

               HttpResponse response = httpClient.execute(put, localContext);
               HttpEntity entity = response.getEntity();

在这里,我需要帮助将 HttpClient 替换为 OkHttpClient 及其所有后续参数。

【问题讨论】:

【参考方案1】:

okhttp-apache 模块让你这样做:

HttpClient httpClient = new OkApacheClient();

它不能完成 Apache HTTP 客户端可以做的所有事情,但它确实使迁移变得更容易。

【讨论】:

是的,它可以创建新的 HTTP 客户端,但无法在 PUT、POST、GET 方法中执行。它表明“.excute(put) 无效。你能帮我在没有 URLconnection 的情况下实现这个吗? 感谢您纠正我的错字,jw! 能详细解释一下吗? From Readme of OkApacheClient(github.com/square/okhttp/tree/master/okhttp-apache) "警告:Apache HTTP 客户端的许多核心功能都没有通过这个 API 实现。这包括保活策略、cookie 存储、凭据提供程序、路由规划器和其他人。”

以上是关于如何在下面的 Apache HttpClient 代码中使用 OkHttpClient的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 HttpClient 将带有 JSON 的 DELETE 发送到 REST API

如何在Apache HttpClient中设置TLS版本

如何从 Apache HttpClient 4.x 获取 cookie?

如何在apache HttpClient上设置TLS版本

httpclient如何发送get请求

如何使用 Apache HttpClient 4 获取文件上传的进度条?