Java将n个标头附加到响应。我正在使用jax-rs / lombok。

时间:2017-04-27 00:30:12

标签: java jax-rs lombok

我正在使用以下代码创建响应:

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;

import lombok.Builder;
import lombok.Getter;

public static Response success(String content) {   
  TestResponse skeletonRsponse = response(content);
  return buildResponse(skeletonRsponse);        
}

public static Response buildResponse(SmartTestResponse skeletonRsponse){
  Response re = Response.status(Status.OK).type(MediaType.APPLICATION_JSON).entity(skeletonRsponse.getContent()).build();
  return re;
}

一切正常。

现在,我想要做的是添加响应标头。我可以这样做:

Response.status(Status.OK).type(MediaType.APPLICATION_JSON).entity(skeletonRsponse.getContent()).header("header1", "value1").header("header2", "value2").build();

但我会在地图中存储可变数量的标题。那么我的问题是在我的回复中添加n个标题的最佳方法是什么?我必须在我所展示的代码范围内工作(所有需要的标题的地图都可以在我需要的地方使用)。我想我会在运行地图时附加一个foreach循环,但我找不到如何进行实际追加的代码示例。不太确定如何处理这个问题。任何帮助赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

我在这里找到答案:https://coderanch.com/forums/posts/reqResolved/679121

问题是邮递员正在创建一个请求标题'内容长度',我抓住它然后将其设置为响应标题。然而,Postman也试图添加自己的响应标题,称为“内容长度”。这导致了冲突。