C'est la situation dans laquelle je suis face avec le code ci-dessous:Android HttpURLConnection très lent
Comme vous pouvez le voir, je suis en train de lire un flux HTTP. Quand je lance le code suivant sur le simulateur Android, il fonctionne 100% du temps, quand je cours le code suivant sur mon Galaxy S3 alors que sur 3G il fonctionne 100% du temps, quand j'essaye de me connecter à l'URL en utilisant mon ordinateur portable navigateur il fonctionne à 100% du temps, quand j'essaie de me connecter en utilisant le navigateur Galaxy S3 (à la fois en wifi et 3g) cela fonctionne ... 100% du temps. Cependant, lorsque j'essaie de me connecter en utilisant mon Galaxy S3 en Wi-Fi, je passe environ 80% du temps. Si je supprime les propriétés de délai d'attente, je reçois des exceptions étranges telles que:
"recvfrom failed: ETIMEDOUT"
"failed to connect to <URL>: connect failed: ENETUNREACH (Network is unreachable)"
"unable to resolve the host <URL>: no address associated with hostname"
Je suis ouvert à toute suggestion ...
public static final String getHttpResponse(String url)
{
HttpURLConnection conn = null;
InputStream response = null;
try {
URL address = new URL(url);
conn = (HttpURLConnection)address.openConnection();
conn.setConnectTimeout(30 * 1000); //30 seconds
conn.setReadTimeout(30 * 1000); //30 seconds
response = conn.getInputStream();
if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
Log.e("Util.getHttpResponse", Integer.toString(conn.getResponseCode()));
return null;
}
String result = Util.streamToString(response);
return result;
} catch(IOException e) {
response = conn.getErrorStream();
Log.e("Util.getHttpResponse", Util.streamToString(response));
return null;
} finally {
if(response != null) {
try {
response.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(conn != null) {
conn.disconnect();
}
}
}
MISE À JOUR: - en utilisant AndroidHttpClient n'a pas fonctionné - Après avoir obtenu le flux d'entrée j'ai eu une erreur popup juste dans l'IDE eclipse ... Comme vous pouvez voir mon curseur de débogage fait tout le chemin à la ligne 107 .. bien après avoir fini d'obtenir le flux d'entrée cette fois-ci ...
Merci, je vais donner un coup de feu et répondre en retour. Cependant, j'ai essayé d'utiliser org.apache.http.client.HttpClient et obtenait les mêmes résultats. – Cailen