如何在下面的 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