我在將 Java 中的 POST 請求發送到本地服務器時遇到了一些問題。我用 Postman 測試了這個本地服務器,它確實可以正常工作。可悲的是,當我嘗試在 Java 中發送 POST 請求時,一切都按照它應該的方式進行,帶有 200 OK 代碼,但正文中沒有任何內容。這是我的代碼:public static void request1() throws MalformedURLException, ProtocolException, IOException { URL url = new URL("http://192.168.1.200"); HttpURLConnection httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); httpCon.setRequestMethod("POST"); OutputStream os = httpCon.getOutputStream(); OutputStreamWriter osw = new OutputStreamWriter(os, "UTF-8"); osw.write("Just Some Text"); osw.flush(); osw.close(); os.close(); //don't forget to close the OutputStream httpCon.connect(); System.out.println(httpCon.getResponseCode()); System.out.println(httpCon.getResponseMessage());}編輯:我看到你們中的一些人說這是重復的,并給了我另一個應該解決的鏈接。遺憾的是,我嘗試了該鏈接中的代碼,但它不起作用。服務器只是說請求沒有正文。
2 回答

qq_笑_17
TA貢獻1818條經驗 獲得超7個贊
來自HttpUrlConnection#getResponseMessage
JavaDoc:
獲取與響應代碼一起從服務器返回的 HTTP 響應消息(如果有)。
來自如下響應:
HTTP/1.0 200 OK
HTTP/1.0 404 Not Found 分別
提取字符串“OK”和“Not Found”
。如果無法從響應中識別出任何內容(結果不是有效的 HTTP),則返回 null。
如果需要響應正文,則需要從HttpUrlConnection
InputStream
.
您可以使用HttpUrlConnection#getInputStream
.

ABOUTYOU
TA貢獻1812條經驗 獲得超5個贊
要獲得實際的響應正文,您需要從中讀取它,
httpCon.getInputStream()
您可以使用這樣的單行讀取字符串中的數據,
String responseBody = new BufferedReader(new InputStreamReader(httpCon.getInputStream())).lines().collect(
Collectors.joining("\n"));
System.out.println(responseBody);
添加回答
舉報
0/150
提交
取消