AndroidアプリケーションからサーバーにPOSTリクエストを送信しています。サーバーはSpring Frameworkを使用して開発されています。リクエストはサーバによって受信されましたが、送信していたパラメータはnull /空です(ログに表示されます)。Androidアプリケーションからサーバー(Spring Framework)でPOSTリクエストを受信
POSTリクエストを送信するために使用されるコードは次のとおりです。
DefaultHttpClient hc=new DefaultHttpClient();
ResponseHandler <String> res=new BasicResponseHandler();
String postMessage = "json String";
HttpPost postMethod=new HttpPost("http://ip:port/event/eventlogs/logs");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("json", postMessage));
postMethod.setEntity(new UrlEncodedFormEntity(nameValuePairs));
hc.execute(postMethod,res);
私はまた、次のようにHttpParamsを設定しようとしたが、それはまた失敗した:
HttpParams params = new BasicHttpParams();
params.setParameter("json", postMessage);
postMethod.setParams(params);
これを受けたサーバ側のコードをリクエストは:
@RequestMapping(value = "/eventlogs/logs", method = RequestMethod.POST)
public String logs(@ModelAttribute("json") String json) {
logger.debug("Received POST request:" + json);
return null;
}
私がロギングしているロガーメッセージ:
Received POST request:
私はここで何が不足していますか?
クライアントでは、要求のエンティティとしてパラメータを指定します。それらをsetParamsとして指定することは、まだ動作しません。 –
私は全く同じ問題があります。あなたが言ったことをするとき、私はorg.springframework.web.bind.MissingServletRequestParameterExceptionを取得しています:必須の整数パラメータ 'channel'が存在しません。私は基本的な名前の値ペアとアンドロイドクライアントからパラメータを送信しています。手伝ってくれますか? – Emilla
@Emillaはあなたのパラメータを逃してしまう可能性がありますので、required = falseとしてマークしてください。この回答を見るhttp://stackoverflow.com/a/3466851/867475 – rizzz86