1 回答
TA贡献1883条经验 获得超3个赞
这里的问题是由于几个错误:
第一个与输入格式有关。您正在使用的代码尝试映射键和值,但正如我从本指南中看到的那样,它需要纯文本的XML格式作为输入。
第二个错误是您尝试通过现有ID发布。在这种情况下,要创建资源,应使用 http://www.thomas-bayer.com/sqlrest/CUSTOMER/
因此,在这种情况下,为了使它工作,请尝试如下操作:
String url = "http://www.thomas-bayer.com/sqlrest/CUSTOMER/";
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
String xml = "<resource>";
xml += "<ID>102</ID>";
xml += "<FIRSTNAME>Apex</FIRSTNAME>";
xml += "<LASTNAME>Consultancy</LASTNAME>";
xml += "<STREET>Shell Blvd</STREET>";
xml += "<CITY>Fremont</CITY>";
xml += "</resource>";
post.setEntity(new StringEntity(xml));
HttpResponse response = client.execute(post);
System.out.println(response.getStatusLine().getStatusCode());
System.out.println("Response Code: " + response);
System.out.println(response.getStatusLine().getReasonPhrase());
学习另一种使用命令行实用程序等工具对其进行测试的方法也非常有用。例如,您可以像这样发布产品:curl
curl -X POST http://www.thomas-bayer.com/sqlrest/PRODUCT/ -d '<resource><ID>103</ID><NAME>X</NAME><PRICE>2.2</PRICE></resource>'
一旦你解决了这个问题,与HTTP代码一起使用将是很重要的。例如,500 错误意味着服务器端出现问题,而 404 通常意味着您命中了无效的终结点(它不存在)。
最后,我不会讨论为什么你使用这个项目将HTTP请求发送到服务器 - 但请记住,这不是一种非常常见的方法。目前,带有JSON的REST将更加有趣和令人愉快:)如果您对此感兴趣,请查看弹簧启动REST
添加回答
举报