我試圖採取任意一組HTTP標頭並將其轉儲到WebResource實例中。該WebResource接口允許一個與查詢參數做到這一點然而,因爲它同時提供澤西島REST:從地圖導入到WebResource實例
webResource.queryParam(key, value)
和
webResource.queryParams(MultivaluedMap<String, String> queryMap)
的API,不允許在同一需做頭。只有一個函數,
webResource.header(key, value)
它允許一個輸入的HTTP報頭中的鍵 - 值對,但沒有功能
webResource.headers(MultivaluedMap<String, String> headersMap)
爲了解決這個問題,我試圖檢索來自助洗劑WebResource並迭代它,逐個添加標頭
WebResource.Builder builder = webResource.getRequestBuilder();
for(Map.Entry<String, String> headersMapEntry : headersMap.entrySet()){
builder = builder.header(
headersMapEntry.getKey(), headersMapEntry.getValue());
}
但它似乎並沒有解決我的問題。
有沒有人有一個想法如何我可以做一個與澤西的解決方法,以便我可以轉儲任何地圖到我的WebResource的標題?
謝謝, 大衛
如何迭代地圖並單獨設置標題不能解決問題? –
嘿克里斯托弗,你的問題正是我爲什麼這麼難過。我使用上面的代碼或「webResource.getRequestBuilder()。header(key,value)」手動迭代;「並且無論它是否正確設置標題(我檢查在Wireshark上發送的傳出數據包) 澤西島源代碼中的getRequestBuilder()僅僅是「返回新的Builder()」,這使得人們懷疑它的做法,但是如果你檢查所有返回Builder(cookie(),entity,...)的函數,它們也使用getRequestBuilder()。 –