與使用相同服務器端服務的iPhone應用程序相比,HttpURLConnection.getInputStream需要非常多的時間。HttpURLConnection.getInputStream非常慢
下面的代碼被用於服務:
date= new java.util.Date();
Log.d("time","Time Stamp before posting "+new Timestamp(date.getTime()));
URL ur= new URL(url);
HttpURLConnection conn = (HttpURLConnection) ur.openConnection();
conn.setRequestProperty("Connection", "close");
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(getQuery(nameValuePairs));
writer.close();
os.close();
conn.connect();
StringBuffer response=null;
try{
Log.d("time","Time Stamp bfr InputStream "+new Timestamp(date.getTime()));
InputStream is = conn.getInputStream();
date= new java.util.Date();
Log.d("time","Time Stamp aftr InputStream "+new Timestamp(date.getTime()));
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
String line;
response = new StringBuffer();
while((line = rd.readLine()) != null) {
response.append(line);
response.append('\r');
}
rd.close();
response.toString();
result=response.toString();
} catch (Exception e) {
}
要檢查這裏的服務需要一定的時間,我把日誌條目打印時間戳。
的平均時間過程如下:
平均時間爲發佈到服務器只需不到2密耳秒
平均時間,用於創建輸入流需要近5秒鐘平均時間寫入響應小於2密耳秒。
任何想法爲什麼輸入流花費很多時間,這使得整個服務非常慢?
你的意思是你看到了更快的連接失敗,當你得到它們時。很難看到這是如何解決OP的問題。 – EJP