Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:HTTPPUT与HttpURLConnection_Java_Httpurlconnection_Http Put - Fatal编程技术网

Java:HTTPPUT与HttpURLConnection

Java:HTTPPUT与HttpURLConnection,java,httpurlconnection,http-put,Java,Httpurlconnection,Http Put,如何进行HTTP PUT?我使用的类似乎认为它在执行PUT,但端点将其视为执行GET。我做错什么了吗 URL url = new URL("https://..."); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("PUT"); OutputStreamWriter writer = new OutputStrea

如何进行HTTP PUT?我使用的类似乎认为它在执行PUT,但端点将其视为执行GET。我做错什么了吗

URL url = new URL("https://...");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("PUT");

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());

writer.write(xmlString);
writer.close();

System.out.println(conn.getRequestMethod());
String response = readInputStream(conn.getInputStream());
System.out.println(response);
正在打印:

PUT
<same content as doing a GET>
PUT

如果这个库可以工作的话,我宁愿不包括另一个库…

有一个简单的方法可以找到:运行并查看网络上实际发生的情况。我发现这是诊断这类问题最可靠的方法——你的客户端可能有bug,库可能有bug,服务器可能有bug,但Wireshark会告诉你真正发生了什么

编辑:好吧,对于HTTPS来说,这有点棘手。如果你在Windows上运行,这是一个代理,那么你可以使用它。如果你能说服你的客户端代码接受它的证书,它可以处理HTTPS,但是这有点干扰性。。。设置代理显然会改变流量的外观


如果您可以通过HTTP与服务器的调试版本进行对话,那就更好了。这在您的情况下是可行的,还是服务器完全不在您的控制范围内?

我所有的流量都是通过https传输到远程服务器的。。。而wireshark看不到里面有多少东西。用curl和java来实现它看起来确实不同,但我应该寻找什么呢?好主意。我联系了他们,得到了一个HTTP服务器进行测试。我发现我的问题是缺少被服务器拒绝的内容类型头。非常感谢。