如何向http请求添加未知数量的头参数?

时间:2016-01-29 21:45:07

标签: java rest jersey-client

我想发一个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;
}

我希望用户能够通过某种地图过去任意数量的标题参数。我看到这是一个.headers()方法,它接受一个多值图,但我不能实例化它,因为它是一个接口。有工作吗?我怎样才能允许用户在标题地图中过去?

1 个答案:

答案 0 :(得分:3)

使用实现MultivaluedHashMap接口的MultivaluedMap