Ich verwende Commons HttpClient, um einen http-Aufruf eines Spring-Servlets durchzuführen. Ich muss ein paar Parameter in die Abfragezeichenfolge einfügen. Also mache ich folgendes:
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);
Allerdings, wenn ich versuche, den Parameter im Servlet mit zu lesen
((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest().getParameter("key");
es gibt null zurück. Tatsächlich ist die parameterMap vollständig leer. Wenn ich die Parameter vor dem Erstellen der HttpGet-Anforderung manuell an die URL anhänge, sind die Parameter im Servlet verfügbar. Das Gleiche gilt, wenn ich das Servlet vom Browser aus über die URL mit angehängtem queryString aufrufe.
Was ist der Fehler hier? In httpclient 3.x verfügte GetMethod über eine setQueryString () -Methode zum Anhängen des Querystrings. Was ist das Äquivalent in 4.x?