我正在学习rest,我发现很难执行PUT请求。下面是我尝试过的代码。但是记录没有被成功地更新
使用的URL - http://www.thomas-bayer.com/sqlrest/PRODUCT/1
尝试更新的值- <PRICE>24.8</PRICE> to <PRICE>24.9</PRICE>
语言: Java
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPut putrequest = new HttpPut(
"http://www.thomas-bayer.com/sqlrest/PRODUCT/1");
List<NameValuePair> nvps = new ArrayList<NameValuePair>() {{
add(new BasicNameValuePair("content-type", "application/xml"));
add(new BasicNameValuePair("Server", "Apache-Coyote/1.1"));
}};
for (NameValuePair h : nvps) {
putrequest.addHeader(h.getName(), h.getValue());
}
String xml="<?xml version=\"1.0\"?><PRODUCT xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n" +
" <ID>1</ID>\n" +
" <NAME>Chair Shoe</NAME>\n" +
" <PRICE>24.9</PRICE>\n" +
"</PRODUCT>";
putrequest.setEntity(new StringEntity(xml));
HttpResponse response = httpClient.execute(putrequest);
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
httpClient.getConnectionManager().shutdown();
}我得到了500响应,但是如果记录不存在的话,我可以使用HTTPPUT添加记录。怎么解决这个问题?
发布于 2018-01-11 03:01:21
如果它被添加了,而您仍然得到了500,那么下面的可能性如下:
https://stackoverflow.com/questions/30934593
复制相似问题