2017-10-01 28 views
1

サーバーのHTTP POST要求を送信しようとしています。私はまた、Androidのを使用してHTTP POSTリクエストを送信できるようにしようとしているAsyncHttpClientがサーバーにHTTP POST要求を送信します。

curl -i -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d "{\"City\":\"Lodz\", \"FirstName\":\"Patryk\"}" http://127.0.0.1:8000/addemployees 

: 私のサーバーは、このようなカールを受け入れます。 私のコードは次のようになります。

AsyncHttpClient httpClient = new AsyncHttpClient(); 
httpClient.addHeader("Accept", "application/json"); 
RequestParams jsonParams = new RequestParams(); 
jsonParams.put("City", city); 
jsonParams.put("FirstName", city); 
Log.i("requestParams: ", jsonParams.toString()); 
httpClient.post("http://myComputerIP:8000/addemployees", jsonParams, new JsonHttpResponseHandler() { 

@Override 
public void onSuccess(int statusCode, Header[] headers, JSONObject obj) { 
     String jsonResponse = obj.toString(); 
     Log.i("TAG", "onSuccess: " + jsonResponse); 
     } 

@Override 
public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) { 
     Log.e("TAG", "onFailure: " + errorResponse); 
} 

私はこのエラーを取得するしかし、私のAndroidのコードで間違った何かがあります:

TAG: onFailure: {"message":"Internal Server Error"} 

私はいくつかのソリューションを試みたが、それらのどれも働きました。私はそれをどのように変更すべきですか?ありがとう

答えて

0

JSON形式でデータを送信する必要があります。そのためにはPOSTメソッドRequestParamsの代わりに既にフォーマットされたJSON文字列を含むStringEntityオブジェクトに渡す必要があります。

JSONObject json = new JSONObject(); 
json.put("City", city); 
json.put("FirstName", city); 
StringEntity entity = new StringEntity(json.toString()); 
関連する問題