Java 我可以创建自己的标题字段供我和访问web应用程序的客户使用吗?
我使用了一些标题字段,如:Java 我可以创建自己的标题字段供我和访问web应用程序的客户使用吗?,java,jakarta-ee,web-applications,http-headers,Java,Jakarta Ee,Web Applications,Http Headers,我使用了一些标题字段,如: X-AppEngine-Country X-AppEngine-City (X表明它们是非标准的头字段。)我在想,如何实现/设置自己的Http头字段以供客户端使用?上述标题字段定义为由google appengine上托管的web应用程序使用~ 根据您的问题,我不确定您是否希望强制客户端向您发送这些自定义头,或者在服务器的响应中设置这些自定义头。 如果使用JAX-RS(Jersey)的Java实现使用RESTAPI,那么从请求中获取头或在响应中设置头是相当简单的。
X-AppEngine-Country
X-AppEngine-City
(
X
表明它们是非标准的头字段。)我在想,如何实现/设置自己的Http头字段以供客户端使用?上述标题字段定义为由google appengine上托管的web应用程序使用~ 根据您的问题,我不确定您是否希望强制客户端向您发送这些自定义头,或者在服务器的响应中设置这些自定义头。
如果使用JAX-RS(Jersey)的Java实现使用RESTAPI,那么从请求中获取头或在响应中设置头是相当简单的。
下面的示例显示了这两种情况
@GET
public Response getClientMessage(@Context HttpContext context) {
// fetch the header values into a multi valued map
MultivaluedMap<String, String> headerMap = context.getRequest().getRequestHeaders();
// If the required headers are not found throw a bad request
// throw new WebApplicationException(Status.BAD_REQUEST);
// Setting the headers on the response
return Response.ok()
.header("X-AppEngine-Country", "US")
.header("X-AppEngine-City", "California").build();
}
@GET
公共响应getClientMessage(@Context-HttpContext-Context){
//将标题值提取到多值映射中
多值Map headerMap=context.getRequest().getRequestHeaders();
//如果未找到所需的标头,则抛出错误的请求
//抛出新的WebApplicationException(Status.BAD_请求);
//在响应上设置标题
返回Response.ok()
.标题(“X-AppEngine-Country”、“美国”)
.header(“X-AppEngine-City”、“加利福尼亚”).build();
}
希望这有帮助