【问题标题】:Send params in header and get them in server side - java在标头中发送参数并在服务器端获取它们 - java
【发布时间】:2017-05-03 09:40:23
【问题描述】:

我正在使用 Jersey,我想从请求的标头中获取参数;

这是我的 java 服务器端代码:

@GET
@Path("/usersForMobile")
@Produces({ MediaType.APPLICATION_JSON + ";charset=utf-8" })
public Response getUsersForMobile(@Context UriInfo info) {  
    String rashutId ;
    String userName ;
    String password;
    List<User> inspectorList= new ArrayList<User>();

    try {

         rashutId = info.getQueryParameters().getFirst("rashutId");
         userName = info.getQueryParameters().getFirst("userName");
         password = info.getQueryParameters().getFirst("password");
         inspectorList = LoginService.getInspectorsList(userName,password,rashutId);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();        
        }

        if(!inspectorList.isEmpty())
            return Response.status(Status.OK).entity(new UsersResponse(inspectorList, true)).build();
        else
            return Response.status(Status.OK).entity("No inspectors found").build();

    }
}

到目前为止,我是从 url 获取参数,但它不是可靠的方式,所以我决定将它们传递到 header 中,如何从请求 header 中获取它们?

谢谢!

【问题讨论】:

  • 这与 Spring 有什么关系,您使用的是 JAX-RS (Jersey) ...
  • 你说得对...对不起,我会编辑它。
  • 你知道我的问题吗?
  • 你没有使用 Spring MVC 中的任何东西...我建议阅读 Jersey 库以了解如何访问标头。
  • 好的,你能编辑我的问题吗?非常感谢!!

标签: java server header jersey jax-rs


【解决方案1】:

您可以使用 @HeaderParam("paramName") 来获取 HTTPHeader 参数,例如

public Response getUsersForMobile(@Context UriInfo info, @HeaderParam("paramName")String  paramValue) 

或使用您拥有的上下文

String paramValue = info.getRequestHeader("paramName").get(0);

【讨论】:

  • 我得到这个编译错误:“语法错误,插入“... VariableDeclaratorId”来完成FormalParameter”
  • 您在 paramValue 之前缺少类型声明
  • @peeskillet 谢谢,是的,我更新了答案。如果您使用方法 1,请在 parameterValue 之前添加字符串。如果您使用方法 2,则不要更改方法签名中的任何内容。
  • 另一个错误:方法 getRequestHeader(String) 未为 UriInfo 类型定义。你有什么想法吗?
  • 我的错误,我忽略了您的上下文类型。为 http 标头 @Context HttpHeaders 标头添加另一个上下文,如果您不想添加单个标头参数,则在这些标头上调用该方法(方法 1)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多