未提取查询参数 - JAX-RS 和 Jersey
Query parameter not being extracted - JAX-RS and Jersey
我正在使用 Jersey 2.19 来实现 REST API,但是我在使用 @QueryParam 从 POST 请求中提取查询参数时遇到了困难,即使正在调用我的资源方法.
这是我的资源方法:
@POST
@Produces(MediaType.TEXT_PLAIN)
public Response test(@QueryParam("test-param") String testParam)
{
String response = "testParam is: " + testParam + "\n";
return Response.status(Response.Status.OK).entity(response).build();
}
我正在使用 cURL 提交 HTTP POST 请求,如下所示:
curl -X POST http://192.168.0.2:8080/myApp/test --data test-param=Hello
返回的值始终为空。
我做错了什么?
curl 中的--data 将提供整个文本test-param=Hello
。正确的请求方式是:
curl -X POST http://192.168.0.2:8080/myApp/test?test-param=Hello
尝试使用 curl -X POST '192.168.0.2:8080/myApp/test?test-param=Hello';
-d, --data
(HTTP) 将 POST 请求中的指定数据发送到 HTTP 服务器,就像浏览器在用户填写 HTML 表单并按下提交时所做的一样按钮。这将导致 curl 使用内容类型 application/x-www-form-urlencoded 将数据传递到服务器。与 -F, --form.
比较
我正在使用 Jersey 2.19 来实现 REST API,但是我在使用 @QueryParam 从 POST 请求中提取查询参数时遇到了困难,即使正在调用我的资源方法.
这是我的资源方法:
@POST
@Produces(MediaType.TEXT_PLAIN)
public Response test(@QueryParam("test-param") String testParam)
{
String response = "testParam is: " + testParam + "\n";
return Response.status(Response.Status.OK).entity(response).build();
}
我正在使用 cURL 提交 HTTP POST 请求,如下所示:
curl -X POST http://192.168.0.2:8080/myApp/test --data test-param=Hello
返回的值始终为空。
我做错了什么?
curl 中的--data 将提供整个文本test-param=Hello
。正确的请求方式是:
curl -X POST http://192.168.0.2:8080/myApp/test?test-param=Hello
尝试使用 curl -X POST '192.168.0.2:8080/myApp/test?test-param=Hello';
-d, --data
(HTTP) 将 POST 请求中的指定数据发送到 HTTP 服务器,就像浏览器在用户填写 HTML 表单并按下提交时所做的一样按钮。这将导致 curl 使用内容类型 application/x-www-form-urlencoded 将数据传递到服务器。与 -F, --form.
比较