我在将 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
提交
取消