为了账号安全,请及时绑定邮箱和手机立即绑定

在java中发送带有正文的post请求

在java中发送带有正文的post请求

HUWWW 2021-12-10 16:45:48
我在将 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#getResponseMessageJavaDoc:

获取与响应代码一起从服务器返回的 HTTP 响应消息(如果有)。

来自如下响应:
HTTP/1.0 200 OK
HTTP/1.0 404 Not Found 分别

提取字符串“OK”和“Not Found”
。如果无法从响应中识别出任何内容(结果不是有效的 HTTP),则返回 null。

如果需要响应正文,则需要从HttpUrlConnection InputStream.

您可以使用HttpUrlConnection#getInputStream.


查看完整回答
反对 回复 2021-12-10
?
ABOUTYOU

TA贡献1812条经验 获得超5个赞

要获得实际的响应正文,您需要从中读取它,


httpCon.getInputStream()

您可以使用这样的单行读取字符串中的数据,


String responseBody = new BufferedReader(new InputStreamReader(httpCon.getInputStream())).lines().collect(

        Collectors.joining("\n"));

System.out.println(responseBody);


查看完整回答
反对 回复 2021-12-10
  • 2 回答
  • 0 关注
  • 225 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信