restful post 有额外的 url 参数?
restful post with additional url parameters?
我有一个 Web 服务,它使用 json 请求并输出 json 响应。我有一个问题,客户需要在 url 中发送一个不能在 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);
}
请注意 "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?键=值
在java中,你可以在你的代码中这样定义它:
@GET
@Path("/server")
public Response myMethod(@QueryParam("key") String value) { //your RESTFULL code}
因此,如果您如前所述调用 url,您将在变量 value.
中获得所需内容
希望对您有所帮助..
干杯
我有一个 Web 服务,它使用 json 请求并输出 json 响应。我有一个问题,客户需要在 url 中发送一个不能在 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);
}
请注意 "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?键=值
在java中,你可以在你的代码中这样定义它:
@GET
@Path("/server")
public Response myMethod(@QueryParam("key") String value) { //your RESTFULL code}
因此,如果您如前所述调用 url,您将在变量 value.
中获得所需内容希望对您有所帮助..
干杯