2011-10-12 2 views
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(); 
+1

이 질문에 대한 직접적인 대답은 아니지만 Androids AsyncTask를 사용하여 가져 오기를 수행하는 것이 좋습니다. 이렇게하면 UI를 업데이트하여 사용자에게 알릴 수 있습니다. http://developer.android.com/reference/android/os/AsyncTask.html –

+0

IntentService의 하위 클래스에있는 내 UI 스레드 외부에서이 모든 일이 일어나고 있으며, 그 질문에 유용성 패턴과 관련이 거의 없습니다. –

+0

그리고 실제로 서버에 연결하는 데 20 초가 걸릴 수 있다는 명백한 이유 때문이 아닙니다. – jarnbjo

답변

0

이것은 아마도 네트워크 문제 였고 jarnbjo는 실제로 연결이 너무 오래 걸렸다는 의견에서 그의 제안에 맞았습니다. 서버와 장치를 다른 네트워크 (웹 서비스는 공개되지 않음)로 옮겼습니다. 문제가 해결되었습니다.

관련 문제