我试图在Java中使用HttpURLConnection
发送JSON数据的PUT请求。 我尝试的方法没有奏效。 我没有收到任何错误信息,因此不知道问题出在哪里。
public static void main(String[] args) {
URL url;
try {
url = new URL("http://fltspc.itu.dk/widget/515318fe17450f312b00153d/");
HttpURLConnection hurl = (HttpURLConnection) url.openConnection();
hurl.setRequestMethod("PUT");
hurl.setDoOutput(true);
hurl.setRequestProperty("Content-Type", "application/json");
hurl.setRequestProperty("Accept", "application/json");
String payload = "{'pos':{'left':45,'top':45}}";
OutputStreamWriter osw = new OutputStreamWriter(hurl.getOutputStream());
osw.write(payload);
osw.flush();
osw.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这是我实际要发出的请求:
我已经对同一应用程序中的资源进行了GET请求,并且它运行良好。如果您能提供调试提示或其他尝试方法,我将非常感激。到目前为止,我只尝试过使用 OutputStream
而不是 OutputStreamWriter
,但它也不起作用。
@PUT
是一种符合RESTful规范的更新资源的约定,并不仅限于传输文件。请参考RFC - http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.6 - NBW