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
添加回答
舉報