我正在使用commons HttpClient對Spring servlet進行http調用。我需要在查詢字符串中添加一些參數。所以,我做到以下幾點:commons httpclient - 向GET/POST請求添加查詢字符串參數
HttpRequestBase request = new HttpGet(url);
HttpParams params = new BasicHttpParams();
params.setParameter("key1", "value1");
params.setParameter("key2", "value2");
params.setParameter("key3", "value3");
request.setParams(params);
HttpClient httpClient = new DefaultHttpClient();
httpClient.execute(request);
然而,當我嘗試使用
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("key");
返回null閱讀在servlet的參數。實際上parameterMap是完全空的。當我在創建HttpGet請求之前手動將參數附加到url時,這些參數在servlet中可用。當我使用追加了queryString的URL從瀏覽器中打開servlet時也是如此。
這裏有什麼錯誤?在httpclient 3.x中,GetMethod有一個setQueryString()方法來追加查詢字符串。 4.x中的等效物是什麼?
有沒有辦法AFTER請求對象已經創建添加查詢字符串參數?如果沒有,是否有另一種標準方法將參數傳遞給servlet以用於任何請求方法(GET/PUT/POST)? – Oceanic 2012-03-28 12:57:25