2015-01-02 72 views
4

阿帕奇已经过时DefaultHttpClient,但似乎这不是针对Android的情况下,看到这里也Deprecated Java HttpClient - How hard can it be?Android上缺少HttpClientBuilder?

导入的

new DefaultHttpClient(); 

org.apache.httpcomponents:httpclient:4.3.5 

,而不是我现在会用

HttpClient httpClient = HttpClientBuilder.create().build(); 

创建一个http客户端。这在Java项目中工作正常,但在Android项目中使用时,下面的导入缺少

import org.apache.http.impl.client.HttpClientBuilder; 

HttpClient sendClient = new DefaultHttpClient(); 

没有被标记为弃用Android和编译罚款。

我不想再次添加Apache httpclient(如果我这样做,Android Studio将会排除它)。

Android的文件说,在这里http://developer.android.com/reference/android/net/http/AndroidHttpClient.html#newInstance(java.lang.String)使用

AndroidHttpClient.new Instance(string) 

“得到合理的默认设置一个HTTP客户端”。

有谁知道在Android上创建HttpClient的正确方法是什么,以及userAgent字符串是什么!

+0

基本上ü想只是打中立柱请求或者是有什么ü想achive与HttpClient的 – KOTIOS

+0

我想创建一个长期运行的HTTP请求接收推送来自服务器的通知。 –

+0

我真的不知道Android的推送通知,但我觉得你应该让Android处理它们。没有服务仅用于获取推送通知,这会浪费电池。我发现了一篇关于Android推送通知的教程,希望对您有所帮助:https://parse.com/tutorials/android-push-notifications –

回答

6

Google Android附带一个非常过时(pre-BETA)版本的Apache HttpClient 4.0。

如果你想在Android上使用更新的Apache HttpClient API,你应该考虑使用official Android port

+0

这个答案是正确的,但最好使用不添加任何后缀的新端口:https://hc.apache.org/httpcomponents-client-4.5.x/android-port.html – Jehy

3

你需要在你的应用程序中加入这一行摇篮

compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 
+0

这对我有效,谢谢。 –