1
                URL url = new URL(URL path);
                HttpURLConnection connection = (HttpURLConnection)url.openConnection();
                connection.setConnectTimeout(30000);
                connection.setReadTimeout(30000);
                connection.setDoInput(true);
                connection.setUseCaches(true);
                connection.connect();
                InputStream is = connection.getInputStream();

上記のコードは私のAndroidのコードです。
URL パスを接続して、InputStream に情報を取得しようとしています。
Android フォンと iPhone で同じ URL パスを同じ wifi に接続しようとしています。
Android フォンは、moto フォンまたは HTC フォンで約 10 秒かかります。
しかし、iPhone は 3 秒もかかりません。
wifiの速度だけが原因ではないと思います(同じwifiで試しているため)。
だから私はそれがコードによって改善される可能性があることを尋ねたいですか?

4

2 に答える 2

2

HttpClient代わりにApacheを使用してみてくださいURL.openConnection()

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet get = new HttpGet("http://your.url");

HttpResponse response;
try {
    response = httpClient.execute(get);
    InputStream is = response.getEntity().getContent();
} catch(Exception e){
    e.printStackTrace();
}

編集:

API レベル 22 (Android M) では Apache HttpClient が削除されるため、このアプローチは非推奨です。

詳細については、http://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client を参照してください

推奨されるアプローチは、使用することですHttpUrlConnection( http://developer.android.com/reference/java/net/HttpURLConnection.html ):

URL url = new URL("http://your.url");
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
try {
    InputStream in = new BufferedInputStream(urlConnection.getInputStream());
    readStream(in);
} finally {
    urlConnection.disconnect();
}
于 2012-07-25T08:49:37.347 に答える