2
我想使用下面的代碼片段在android(2.3.4)中執行webservice調用。我的問題發生在conn.getOutputStream上,因爲此方法似乎需要20秒才能返回。有什麼想法嗎?HttpURLConnection.getOutputStream()需要20秒。爲什麼?
URL uri = new URL(serviceURI + "/remoteMethod");
HttpURLConnection conn = (HttpURLConnection) uri.openConnection();
conn.setDoOutput(true);
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
Log.d(TAG, "opening output stream");
OutputStreamWriter writer = new OutputStreamWriter(
conn.getOutputStream());
Log.d(TAG, "output stream opened");
String body = getRequestBody();
writer.write(body);
writer.flush();
writer.close();
int responseCode= conn.getResponseCode();
雖然這並不直接回答你的問題,但我建議使用Android的AsyncTask執行提取,這樣你可以更新你的UI,通知你的用戶等待。 http://developer.android.com/reference/android/os/AsyncTask.html –
這一切都發生在我的UI線程之外的IntentService的子類中,並且這個問題與可用性模式之間幾乎沒有任何關係。 –
這不是因爲它明顯的原因,它實際上可能需要20秒連接到服務器? – jarnbjo