0
我正嘗試使用HttpURLConnection
類的實例向遠程服務器發送HTTP POST請求。雖然我能夠獲得響應代碼和響應消息,但當我嘗試將輸入流寫入StringBuffer
時,我無法真正讀取任何行。如何使用HttpURLConnection對象從遠程服務器獲取響應?
當我分析從WireShark發送的數據包時,我注意到正在從遠程服務器發送完整響應。我唯一的猜測是爲什麼我無法在Java程序中看到它,因爲我試圖從InputStream中讀取的時間太晚了。
那麼,我如何從遠程服務器使用我的HttpURLConnection
對象讀取即時,完整響應?以下是我正在使用的代碼:
HttpURLConnection conn = null;
String urlStr = "...";
URL url = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
...
BufferedReader rd = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null)
{
sb.append(line);
}
rd.close();
...
}...