我使用澤西島,並且與GET
和PUT
調用沒有任何問題,但由於某些原因POST
拒絕工作;我一直得到405返回。在澤西島使用POST方法時返回405錯誤
我已經嘗試過在我的方法上簽名的多個排列,我開始懷疑是否還有別的東西丟失。
這裏有什麼行不通的例子:在使用JSON
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8888/api/v1").path("tmm").path("mypost");
String input = "{\"address\":\"myaddress\",\"user\":4}";
ClientResponse response = webResource.type(MediaType.APPLICATION_JSON).post(ClientResponse.class, input);
我意識到:
服務器端:
@Path("/tmm")
public class TmmRes {
@POST
@Path("/mypost")
@Consumes(MediaType.APPLICATION_JSON)
public Response postTest(String input) {
System.out.println("Made it to POST: "+input);
return Response.status(201).entity(input).build();
}
}
客戶端我應該有一個輸入綁定的對象,但我簡化了複雜性讓事情奏效。
有人有什麼見解?順便說一下,我正在使用Tomcat (6.0.43)
。
您是否嘗試過使用POSTMAN(Chrome應用程序,而不是Chrome瀏覽器擴展)執行相同的請求?所以你可以看到真正的HTTP請求,內容類型等等。似乎內容類型的文本/ json沒有正確完成。 –
是的,我試過POSTMAN的結果。我想知道是否有什麼獨特的POST,需要一些額外的設置在服務器端。我也已經能夠得到刪除工作... – user3570396
這個代碼它在我的設置下工作,要麼你錯過了路徑或有麻煩的版本的tomcat或者澤西島。你有沒有嘗試在這個特定的代碼中將所有的POST改爲PUT,並且工作正常?或者你有其他方法註釋與PUT工作? –