2013-05-07 29 views
2

這裏空的是,我有捲曲請求服務:@FormParam參數總是在我JAX-RS資源服務

time curl -i -XPOST 'http://localhost:9080/my/service' -H "Authorization:OAuth MyToken" -H "Content-Type: application/json" -d "ids=516816b2e4b039526a235e2f,516816b2e4b039526a235e2f" 

資源:

@Path("/my") 
@Consumes({"application/xml", "application/json"}) 
@Produces({"application/xml", "application/json", "text/json"}) 
@Restricted 
public class MyResource { 

    @POST 
    @Path("/service") 
    public Map<String ,Object> myService(@FormParam("ids") String myIds) { 
     // service things 
    } 
} 

這項服務工作得很好,但它突然失敗。現在參數myIds始終爲空,並且curl的結果是400錯誤的請求... 我沒有更改此資源中的任何內容,因此它應該仍然有效。 如果有人有想法,請告訴我。 謝謝!

回答

5

在您的curl-命令中,您將張貼表格數據以及Content-Type: application/json。很明顯,這個數據不是有效的JSON,因此是400個不好的請求。

如果你想發佈表單數據,您需要使用內容類型application/x-www-form-urlencoded

+0

的確是這樣,與@Consumes({ 「應用程序/ XML」, 「應用/ JSON」,「應用程序/ x-WWW -form-urlencoded「})和這個curl:time curl -i -XPOST'localhost:9080/my/service'; -H「授權:OAuth MyToken」-H「內容類型:應用程序/ x-www-form-urlencoded」-d「ids = 516816b2e4b039526a235e2f,516816b2e4b039526a235e2f」它可以很好地工作。謝謝艾登。 – pauline 2013-05-13 09:01:22