我有一个这样的网址:
http://log:pass@localhost:8080/myendpoint
泽西终点:
@GET @Produces(MediaType.APPLICATION_JSON) @Path("/login")
@Consumes(MediaType.APPLICATION_JSON) public Response login(
@Context HttpHeaders headers, @QueryParam("callback") String callback)
{
}
理想情况下,我希望在我的端点方法中获得'log'和'pass'。如何在泽西岛做到这一点?我尝试了许多endpint方法签名,过滤器等,但它显示了我
http://localhost代替http://log:pass@localhost无处不在
如何实现这一目标?
答案 0 :(得分:1)
假设在前端,您使用JSON.stringify()
将参数作为json对象发送,然后返回端点方法。将此作为方法签名JsonObject payload
的第二个参数添加。然后,您可以在该方法中访问您的查询参数,如下所示
String log = payload.getString("log");
String pass = payload.getString("pass");
修订版
@Path("/login")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response login(@Context UriInfo uriInfo, @Context HttpHeaders headers, @QueryParam("callback") String callback) {
URI requestUri = uriInfo.getRequestUri();
String authority = requestUri.getAuthority(); // authority contains what you need;
}