如何向 http 请求添加未知数量的 header 参数?
How to add unknown amount of header parameters to http request?
我想发起一个http请求。我正在使用 JAX-RS 球衣客户端 api。这是我的代码:
public RestResponse restPost(String sessionMap, String requestURL, String jsonRequest, MultivaluedMap<String, Object> headers) {
String baseURL = session.get("baseurl");
System.out.println("baseURL: " + baseURL);
WebTarget target = getWebTarget().path(requestURL);
Response response = target.request(MediaType.APPLICATION_JSON)
.headers(headers) **//past in a multi value map ex: ["ContentType":"application/json", "Content-Length":"158"]**
.post(Entity.json(jsonRequest));
int responseCode = response.getStatus();
String responseData = response.readEntity(String.class);
String contentType = response.getHeaderString("Content-Type");
RestResponse data = new RestResponse(responseCode, responseData);
System.out.println("response code: " + responseCode);
System.out.println("response Data: \n" + responseData);
System.out.println("content-type: " + contentType);
//parseJSON(responseData);
return data;
}
我希望用户能够通过某种地图传递任意数量的 header 参数。我看到这是一个接受多值映射的 .headers() 方法,但我无法实例化它,因为它是一个接口。有解决办法吗?我还能如何允许用户在 header 的地图中过去?
使用实现了MultivaluedMap
接口的MultivaluedHashMap
。
我想发起一个http请求。我正在使用 JAX-RS 球衣客户端 api。这是我的代码:
public RestResponse restPost(String sessionMap, String requestURL, String jsonRequest, MultivaluedMap<String, Object> headers) {
String baseURL = session.get("baseurl");
System.out.println("baseURL: " + baseURL);
WebTarget target = getWebTarget().path(requestURL);
Response response = target.request(MediaType.APPLICATION_JSON)
.headers(headers) **//past in a multi value map ex: ["ContentType":"application/json", "Content-Length":"158"]**
.post(Entity.json(jsonRequest));
int responseCode = response.getStatus();
String responseData = response.readEntity(String.class);
String contentType = response.getHeaderString("Content-Type");
RestResponse data = new RestResponse(responseCode, responseData);
System.out.println("response code: " + responseCode);
System.out.println("response Data: \n" + responseData);
System.out.println("content-type: " + contentType);
//parseJSON(responseData);
return data;
}
我希望用户能够通过某种地图传递任意数量的 header 参数。我看到这是一个接受多值映射的 .headers() 方法,但我无法实例化它,因为它是一个接口。有解决办法吗?我还能如何允许用户在 header 的地图中过去?
使用实现了MultivaluedMap
接口的MultivaluedHashMap
。