2016-10-08 74 views
1

我試圖通過郵遞員來調用這個API:無法通過地圖RESTful方法

@POST 
@Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
public void printDetails(final MultivaluedMap<String, String> formParams) { 

    for(String key : formParams.keySet()) { 
     System.out.println(key + "  " + formParams.get(key)); 
    } 
} 

但地圖原來是空的。請幫助我一樣。

PS:這是我第一次嘗試將可變數量的參數傳遞給api。我提到了 sending List/Map as POST parameter jerseyHow to access parameters in a RESTful POST method

我想我錯就錯在我傳遞參數郵遞員方式:postman image

請幫我一樣。也請幫助如何通過ajax(在JS)調用這個API。

+0

我想知道的答案是否是有幫助的辦呢?請讓我知道,如果它不是,並嘗試此解決方案後得到什麼,以便我可以看看它並解決。 – notionquest

+0

@notionquest對不起,回覆晚了。我剛剛試過你的答案。不幸的是,它也給了我一張空的地圖! –

+0

您是否仍面臨同樣的問題或設法找到解決方案? – notionquest

回答

1

我發現了一個可能的答案。

@POST 
public void printDetails() { 
    HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); 
    Map<String, String[]> mapp = request.getParameterMap(); 
    for(String key : mapp.keySet()) { 
     System.out.println(key + "  " + mapp.get(key)[0]); 
    } 
} 

仍然不知道如何通過傳遞「最後MultivaluedMap」的論點

1

設置請求標頭爲"application/x-www-form-urlencoded"

Postman request header

請求體 - 選擇生提供值如下所述: -

{ 
    "LOCATION": "Singapore" 
} 

enter image description here