如何向 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