作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在表单中向我的 Jersey servlet 发出一个curl post Restful请求
curl -i -X POST -d "debit_user_id=/custome/mobile_number:917827448775"http://localhost:8080/switch/apikongcall.do/transactions
我需要在我的 servlet 中获取 debit_user_id,我的 Post 方法的代码是
@POST
//@Path("/transactions")
//@Consumes(MediaType.APPLICATION_JSON)
public Response createTrackInJSON(@QueryParam("debit_user_id") String debit_user_id) {
//Log logger = null;
this.logger = LogFactory.getLog(getClass());
this.logger.info("Inside post method"+debit_user_id);
String response = debit_user_id;
//String response = "testParam is: " + recipient_id + "\n";
//String result = "Track saved : " + track;
return Response.status(200).entity(response).build();
但是我的 debit_user_id 为空。这是发出 curl 安静请求的正确方法还是我在 servlet 中提取它的方式是错误的。我是 jax-rs 的新手。预先感谢您的帮助。
最佳答案
curl 的 -d 选项传入 url 编码的表单参数。您必须将 @QueryParam 更改为 @FormParam 才能使给定的 Curl 命令起作用。另外,只需将参数名称指定为 mobile_number ,而不使用在curl 命令中使用的路径,如下所示:
curl -i -X POST -d "debit_user_id=mobile_number:917827448775" http://localhost:8080/switch/apikongcall.do/transactions
映射到
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public Response createTrackInJSON(@FormParam("mobile_number") String debit_user_id) {
...
}
如果您确实需要查询参数,则需要更改您的curl 命令:
curl -i -X POST http://localhost:8080/switch/apikongcall.do/transactions?mobile_number=917827448775
出于安全原因,最好将手机号码保留在消息正文中,因此我会使用 FormParam 而不是 QueryParam。
关于java - 如何从 Jersey servlet中的curl请求中提取参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811046/
我是一名优秀的程序员,十分优秀!