[英]Send post request with body in java
我在将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());
}
编辑:我看到你们中的一些人说这是重复的,并给了我应该解决的另一个链接。 可悲的是,我尝试了该链接中的代码,但无法正常工作。 服务器只是说请求没有内容。
从HttpUrlConnection#getResponseMessage
JavaDoc:
获取HTTP响应消息(如果有)以及从服务器返回的响应代码。
来自以下响应:
HTTP / 1.0 200 OK
找不到HTTP / 1.0 404
提取字符串“确定”和“未找到”
分别。 如果无法从响应中识别出结果,则返回null(结果是无效的HTTP)。
如果需要响应主体,则需要从HttpUrlConnection
InputStream
提取它。
您可以使用HttpUrlConnection#getInputStream
。
要获取实际的响应正文,您需要阅读以下内容,
httpCon.getInputStream()
您可以像这样用一个衬里读取字符串中的数据,
String responseBody = new BufferedReader(new InputStreamReader(httpCon.getInputStream())).lines().collect(
Collectors.joining("\n"));
System.out.println(responseBody);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.