我在Android服務中運行DefaultHttpClient,但即使出現錯誤,我也無法獲得任何結果。 這可能嗎?通過瀏覽,我找到了make HTTPClient作爲服務,但在服務中找不到調用HTTPClient。期待幫助。Android - 是否可以在服務中運行DefaultHTTPClient?
0
A
回答
0
您是否看過如何在Java中使用HTTP客戶端,Post和Response?這是一個基本的例子,因爲人們可能在的AsyncTask doInBackground功能使用:在Android服務
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
//in doInBackground() or other thread outside of main
InputStream myStream;
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url_select);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
try {
nameValuePairs.add(new BasicNameValuePair("currentUser", currentUserVar));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
myStream = response.getEntity().getContent();
} catch (ClientProtocolException e) { e.printStackTrace();
} catch (IOException e) { e.printStackTrace(); }
0
是的,你可以在「運行DefaultHttpClient」。您可以通過多種方式將結果(響應代碼,響應等)返回給其他組件(活動等)。可以使用ResultReceiver。
或者,您可以使用服務巴士,如Otto(如果您願意學習一些關於巴士並設置它的話,這會更容易,並且它在許多地方派上用場,而不僅僅是服務) 。
要真正幫助,雖然你需要使問題更清楚。您的服務是否已經在運行併發出HTTP請求,並且您只需要將結果提供給其他組件,或者您是否可以讓DefaultHTTPClient根本無法工作?
此外,如果您不想處理自己的線程處理,您應該查看IntentService。它通常是「服務中的HTTP客戶端」之類的優秀候選人。
這個問題有更廣泛的信息:Android - httpclient as a backgroundservice
相關問題
- 1. 在UI線程中運行的服務中是否可運行
- 2. 是否可以從Android服務運行ProcessBuilder?
- 3. 是否可以運行在Windows服務中託管的Orleans
- 4. 服務是否可以在nix-shell中運行
- 5. Android:是否可以註冊服務以在設備重啓後運行?
- 6. Apache Commons是否可以在所有服務器上運行?
- 7. 是否可以在node.js服務器上運行Three.js WebGLRenderer?
- 8. 是否可以在Heroku上運行bitcoind服務器?
- 9. android是否可以在後臺運行服務,直到我們停止它
- 10. 應用程序的服務是否可以運行在不同的進程中?
- 11. JavaScript是否可以在UIWebView中運行?
- 12. 是否可以在iframe中運行setTimeout?
- 13. 如何檢查服務器是否可以訪問並運行?
- 14. Node.js:是否可以捕獲「TypeError」並保持服務器運行?
- 15. 是否可以在VirtualBox中運行的Kali Linux中運行AVD?
- 16. 我可以在後臺服務中完全運行Android GeoFencing嗎?
- 17. 是否可以在Android VM中在運行時檢測ABI?
- 18. CountDownLatch是否可以在Android服務中使用?
- 19. Android:是否可以在後臺服務中使用Firebase Remote Config?
- 20. 是否可以運行Selenium腳本而不運行X服務器?
- 21. 檢查服務是否正在運行?
- 22. 檢查服務是否正在運行
- 23. node.js是否可以在任何託管服務提供商中運行?
- 24. 是否可以在eclipse運行時環境中定義jetty服務器?
- 25. 是否有任何可以在Java進程中運行的MQ服務器?
- 26. 是否可以在JVM中運行Android應用程序?
- 27. 是否可以在Android WebKit瀏覽器中運行Java Applet?
- 28. 是否可以在Android Studio中運行/調試測試?
- 29. 使用Java Spring,是否可以運行在客戶端執行的服務?
- 30. 檢測ADB服務器是否在Android上運行?
DefaultHttpClient還沒有意識它運行的背景下。你可以在你喜歡的地方運行它 – Blackbelt
是的,它可以發佈你的相關代碼,然後我們會盡力幫助你更多 –