![](/img/trans.png)
[英]How to send array as POST parameter/payload to webservice in Android using REST
[英]How to perform POST requests to a REST webservice?
我有一個 RESTful web 服務,我在其中編寫了一個接收POST
請求的方法。
我正在嘗試通過 URL http://localhost:8091/prjctname/post
訪問該方法。
但它拋出以下錯誤:
HTTP 狀態 405 - 不支持請求方法“GET”
類型:狀態報告
消息:不支持請求方法“GET”
描述:請求的資源不允許指定的 HTTP 方法
下面是代碼片段。
@RequestMapping(value = "/post", method = RequestMethod.POST)
@Produces("application/json")
@ResponseBody
public String createUser(@RequestBody PCDBean bean, HttpServletRequest request) {
String username = null;
String password = null;
System.out.println("inside post method");
String result = service.getCustomer(username, password);
if(result != null) {
return username + password;
} else {
return "failure";
}
}
您正在向僅支持POST
請求的端點執行GET
請求。 在這種情況下,預期結果是405
錯誤:
405
(Method Not Allowed) 狀態碼表示在請求行中接收到的方法被源服務器知道但不被目標資源支持。 [...]
我猜您正在嘗試使用瀏覽器地址欄訪問端點。 但是,在瀏覽器地址欄中鍵入資源 URL 時,您正在執行GET
請求。 這是瀏覽器的默認行為。 處理它。
因此,瀏覽器地址欄不會給你太多的靈活性來測試 REST API,一旦你只能從它執行GET
請求。
要測試 REST API,您應該使用正確的工具。 它們將使您能夠使用所有 HTTP 方法(包括POST
)執行請求、設置請求標頭和瀏覽器地址欄中不可用的其他功能。
簡單列舉幾個:
在我的案例中,真正的問題是我的文本並不完全符合服務器中的預期。 對象有拼寫錯誤。 應該正好是 "{\\n"+"\\"jobName\\":\\"MOVE_TO_PICK_POSITION\\"\\n"+"}"; 我正在使用其他東西。
405 錯誤消息讓我浪費了很多時間,因為它讓我認為我的 POST 請求有問題。
希望這可以幫助。
你需要讓瀏覽器接受一個 post 請求,像這樣:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <form action="login" method="post"> name: <input type="text" name="name"> <br> password: <input type="password" name="password"> <br> <input type="submit" value="submit"> </form> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.