Java 如何使用XML执行HTTPPUT请求?
我正在学习RESTAPI,我发现执行Java 如何使用XML执行HTTPPUT请求?,java,apache,http-put,Java,Apache,Http Put,我正在学习RESTAPI,我发现执行PUT请求很困难。下面是我尝试的代码。但是记录没有成功更新 使用的URL-http://www.thomas-bayer.com/sqlrest/PRODUCT/1 试图更新的值-24.8到24.9 语言:Java DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPut putrequest = new HttpPut( "http://www.thomas
PUT
请求很困难。下面是我尝试的代码。但是记录没有成功更新
使用的URL-http://www.thomas-bayer.com/sqlrest/PRODUCT/1
试图更新的值-24.8到24.9
语言: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();
}
DefaultHttpClient-httpClient=newdefaulthttpclient();
HttpPutRequest=新HttpPut(
"http://www.thomas-bayer.com/sqlrest/PRODUCT/1");
列表nvps=new ArrayList(){{
添加(新的BasicNameValuePair(“内容类型”、“应用程序/xml”);
添加(新的BasicNameValuePair(“服务器”、“Apache Coyote/1.1”);
}};
用于(名称值对h:nvps){
putrequest.addHeader(h.getName(),h.getValue());
}
字符串xml=“\n”+
“1\n”+
“椅子鞋\n”+
“24.9\n”+
"";
setEntity(新的StringEntity(xml));
HttpResponse response=httpClient.execute(putrequest);
if(response.getStatusLine().getStatusCode()!=201){
抛出新的RuntimeException(“失败:HTTP错误代码:”
+response.getStatusLine().getStatusCode());
}
httpClient.getConnectionManager().shutdown();
}
我得到500
响应,但如果记录不在那里,我可以使用HTTPPUT
添加记录。如何解决此问题?如果添加了此项,但您仍获得500,则有以下几种可能性:
添加记录后服务器遇到错误
服务器端代码被错误地放入状态代码
谢谢你,拉姆,让我在未来继续关注同样的问题。请编辑问题并添加详细信息,比如你到目前为止搜索了什么,尝试了什么方法来解决它,以及你遇到了什么问题。这可能有助于读者回答您的问题:使用了哪个REST版本或哪个REST jar?