在我们正在运行的应用程序中, GET 请求之一开始在Internet Explorer中以 400错误请求作为响应。
在调查时,我发现GET请求没有查询参数,这是ReST调用所期望的。
因为它在Chrome,Mozilla等其他浏览器中提供回复, 我该怎么办?
目前正在触发请求 -
请求方法是 GET
https://XXXXXXXXX/XXX/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX/XXXXXXXXX {%22numRecords%22:1000,%22start%22:0}?&安培; _ = 1487576597960
ReST api预期的和 @QueryParam 中的queryParameters是 --numRecords -start
我知道上面的GET请求,numRecords和start不会被api后端捕获。
那么,有没有机会,如果我的GET请求缺少任何 @QueryParam 将导致400 Bad请求响应。
答案 0 :(得分:0)
我发现GET请求没有queryParameters
您可以在GET请求中使用查询参数,如您在示例中提供的那样:http://host?queryParam1=value1
。但是,如果您可以为POST或PUT请求提供JSON编码数据,则无法传递请求正文。您可以通过将JSON AND URL编码的有效内容添加到查询参数来解决此问题。但是你的端点明确地必须能够读取这个参数。因此,您应该将此参数添加到您的definiotn中,就像此示例中的JAX-RS一样:
@GET
@Path("my-endpoint")
public String request(
@PathParam("payload") JsonObject payload
) {
您尝试过的是简单地传递有效负载数据,而不指定请求参数的名称。
希望这有帮助。