【发布时间】:2014-05-14 05:36:15
【问题描述】:
我想通过 HTTP PUT(调用 REST Web 服务)向服务器发送一些数据。下面是代码..
URL urlObj = new URL("http://99.66.66.238:8443/media/service");
HttpURLConnection conn = (HttpURLConnection) urlObj
.openConnection();
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestMethod("PUT");
conn.setRequestProperty("accept-charset", "UTF-8");
conn.setRequestProperty("content-type",
"application/x-www-form-urlencoded");
String userPassword = username + ":" + password;
byte[] authEncBytes = Base64.encodeBase64(userPassword.getBytes());
String authStringEnc = new String(authEncBytes);
conn.setRequestProperty("Authorization", "Basic " + authStringEnc);
OutputStreamWriter writer = new OutputStreamWriter(
conn.getOutputStream(), "UTF-8");
writer.write(requestXML);
conn.getOutputStream().flush();
但另一方面,他们没有得到数据。他们只看到..
PUT /media/service HTTP/1.1
accept-charset: UTF-8
content-type: application/x-www-form-urlencoded
Authorization: Basic cm10dGVzdDpwYXNzd29yZA=3D=3D
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.6.0_13
Accept: text/html, image/gif, image/jpeg, *; q=3D.2, */*; q=3D.2
Connection: keep-alive
Content-Length: 0
注意 Content-Length 如何为 0。你能告诉我为什么数据没有通过吗?无论如何我可以确切地看到我发送的内容吗?
谢谢。
【问题讨论】:
-
您是否尝试过设置 Content-Length 和 Content-type 标头?可能是因为未设置标头,因此服务器懒得读取任何内容。
标签: java web-services http rest url