Java 使用其他url参数的restful post?
我有一个web服务,它使用json请求并输出json响应。我有一个问题,客户需要在url中发送一个附加参数,而这个参数不能在json正文中。有办法吗 例如,@WebService使用传入json请求的方法如下:Java 使用其他url参数的restful post?,java,json,web-services,jax-rs,enunciate,Java,Json,Web Services,Jax Rs,Enunciate,我有一个web服务,它使用json请求并输出json响应。我有一个问题,客户需要在url中发送一个附加参数,而这个参数不能在json正文中。有办法吗 例如,@WebService使用传入json请求的方法如下: @POST @Path("/bsghandles") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public BsgHandleRespo
@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);
}
请注意,“key”是一个硬编码参数。我需要用户在url中传递该参数,而不是json结构。有办法吗?只需在方法中添加一个带有
@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
{
...
}
是的,有
您可以将其作为查询参数传递。例如:
www.yourhost.com/server?key=value
在java中,您可以在代码中这样定义它:
@GET
@Path("/server")
public Response myMethod(@QueryParam("key") String value) { //your RESTFULL code}
因此,如果您像前面所说的那样调用该url,您将在变量值中得到所需的内容
希望能有帮助
干杯