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手机通过摩托手机或HTC手机大约花费10秒钟 但iPhone只花不到3秒钟 我认为这可能不仅仅是因为wifi的速度。(因为我尝试使用相同的wifi) 所以我想问一下,代码可以改进吗?
答案 0 :(得分:2)
尝试使用apache HttpClient
代替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();
}
答案 1 :(得分:0)
使用volley它是一个HTTP库,可以更轻松,更快地为Android应用程序建立网络。 Volley可在GitHub上找到。 Volley可以帮助您简化和改善应用程序网络运营的性能。