如何使用JAX-RS获取HTTP头?

时间:2013-09-03 06:56:45

标签: java rest jax-rs

我有以下用于调用Web服务的URL

http://localhost:8080/mdnd_myshelfService_V1.0/myshelf/authenticateUserAndGetHospitalDetails?username=85010352:password=cHdfODUwMTAzNTIk

除此之外,我需要从特定设备发送用户名和密码,以便根据标题字段形式的硬编码用户名和密码验证设备。

@GET
@Path("/authenticateUserAndGetHospitalDetails")
@Produces(MediaType.APPLICATION_JSON)
public Hospital getAllHospitalData(@QueryParam("username") String userId) {
    log.error("in getAllHospitalData.. " + userId + " | " );
    }

如何获取标题字段:MYSHELF_IPHONEUser_QAMYSHELF_IPHONEUser

2 个答案:

答案 0 :(得分:1)

我认为您没有正确调用Web服务,因为如果要传递usernamepassword的查询字符串,请使用&运算符在{?之后列出它们1}}。

http://localhost:8080/...?username=85010352&password=cHdfODUwMTAzNTIk

答案 1 :(得分:1)

如果您使用的是JAX-RS,则可以使用@HeaderParam访问HTTP标头:

@GET
@Path("/authenticateUserAndGetHospitalDetails")
@Produces(MediaType.APPLICATION_JSON)
public Hospital getAllHospitalData(
  @QueryParam("username") String userId,
  @HeaderParam("MYSHELF_IPHONEUser_QA") String userQaHeader,
  @HeaderParam("MYSHELF_IPHONEUser") String userHeader) {
  // ...
}