私はApache HTTP Clientを使用しており、私のサーブレットにPOSTリクエストを送信する必要があります。 要求が送信されると、私のサーブレットはパラメータを受け取りません(HttpServletRequest
)。ここでApache HTTPクライアント、POST要求。リクエストパラメータを正しく設定するには?
は、クライアントプログラムのコードです:
// Engage the HTTP client
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpResponse response;
try {
HttpPost httpPost = new HttpPost("http://localhost:8080/test-json-web/JSONReceiverServlet");
// Setup the request parameters
HttpParams params = new BasicHttpParams();
params.setParameter("taskdef", task1JsonString);
httpPost.setParams(params);
// Make the request
response = httpclient.execute(httpPost);
HttpEntity responseEntity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if(responseEntity != null) {
System.out.println("Response content length: " + responseEntity.getContentLength());
}
String jsonResultString = EntityUtils.toString(responseEntity);
EntityUtils.consume(responseEntity);
System.out.println("----------------------------------------");
System.out.println("result:");
System.out.println();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
httpclient.getConnectionManager().shutdown();
}
サーブレットが実際にそれらを受け取るように正しくPOSTリクエストのパラメータを設定する方法は?
POSTですか? –
これは機能します!しかし、なぜ他のもの(BasicHttpParams)が動作しないのか分からなかった。任意のアイデア/ –
Works :)注目すべき点は、 'UrlEncodedFormEntity'のエンコーディングを指定しなかった場合、Spring Controllerはパラメータを受け取らなかったことです。エンコーディングが実際に必須であるように見えます。 – MJar