簡體   English   中英

JAX-RS @Context HttpHeaders始終為null

[英]JAX-RS @Context HttpHeaders always null

我有一個使用jax-rs和resteasy(3.0.24)的Spring Boot應用程序。 我正在嘗試為這樣的請求獲取HttpHeaders

    @DELETE
    @Path("/myendpoint")
    public Response myMethod(@Context HttpHeaders headers, @Context HttpServletRequest request) {
       // headers is always null
    }

即使我使用多個標頭發出請求,標頭參數也始終為null。 作為替代,我通過HttpServletRequest.getHeaderNames()提取它們,但我真的很想知道為什么不填充標頭。

發現了(令人尷尬的,盡管我將責任歸咎於作者:)。 @Context HttpHeaders headers使用的是Spring的實現,而不是jax-rs中的實現。

您必須使用@Context獲取標頭,然后檢查所需的那個是否存在。

@Path("/users")
public class UserService {

@GET
@Path("/get")
public Response addUser(@Context HttpHeaders headers) {

    String userAgent = headers.getRequestHeader("user-agent").get(0);

    return Response.status(200)
        .entity("addUser is called, userAgent : " + userAgent)
        .build();

}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM