我有一个Web服务,它使用json请求并输出json响应。我有一个问题,客户需要在网址中发送一个不能在json正文中的附加参数。有没有办法做到这一点?
例如,以下是使用传入json请求的@WebService方法:
@POST
@Path("/bsghandles")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public BsgHandleResponse getBsgHandlesJson(BsgHandleRequest obj) {
HttpServletRequest request = getRequestObject();
return processGetBsgHandleByRateCode("key", obj.getRateCodes(), obj.getCorp(),
obj.getHeadend(), obj.getEquipmentProtocolAiu(), obj.getEquipmentTypeAiu(), request);
}
请注意"键"是一个硬编码参数。我需要用户在url中传递该参数,而不是json结构。有没有办法做到这一点?
答案 0 :(得分:1)
只需在您的方法中添加一个用@QueryParam
注释的参数:
@POST
@Path("/bsghandles")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public BsgHandleResponse getBsgHandlesJson(@QueryParam("key") String key,
BsgHandleRequest obj) {
...
}
使用以下方式消费:
POST /api/bsghandles?key=value HTTP/1.1
Content-Type: application/json
Accept: application/json
{
...
}
答案 1 :(得分:1)
是的!
您可以将其作为查询参数传递。例如:
www.yourhost.com/server?key=value
在java中,你可以在代码中定义它:
SELECT First, Last
FROM TableA
NATURAL JOIN TableB
NATURAL JOIN TableC
WHERE TableA.Category=1;
FIRST LAST
-------------------- --------------------
Joe English
Lucy Parker
Kate Young
因此,如果您按照之前的说法调用该网址,您将在变量值中获得所需内容。
希望有所帮助......
干杯