2012-02-17 20 views
0

現在、POST経由でサーバーにデータを送信しようとしています。サーバーはデータを処理してJSONファイルに追加しています。私は現在422のエラーが発生しているし、私はしばらくそれを受け取りました。私の質問は:JavaでJSONエラー自体を受け取って、エラーの内容を確認する方法です。私が見ているのはHttpResponseExceptionで、それ以外は何も与えません。お時間をいただきありがとうございました。Android POSTからのJSON戻り値の取得HTTPの実行

 HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost(mPath); 
     // Add your data 
    try 
    { 
     List nameValuePairs = new ArrayList(4); 
     httppost.setHeader("Authorization", Base64.encodeToString(new StringBuilder(bundleId).append(":").append(apiKey).toString().getBytes("UTF-8"), Base64.URL_SAFE|Base64.NO_WRAP)); 
     nameValuePairs.add(new BasicNameValuePair("state", "CA")); 
     nameValuePairs.add(new BasicNameValuePair("city", "AndDev is Cool!")); 
     nameValuePairs.add(new BasicNameValuePair("body", "dsads is assrawstjljalsdfljasldflkasjdfjasldjflasjdflkjaslfggddsfgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfdsgfddjflaskjdfkasjdlfkjasldfkjalskdjfajasldfkasdlfjasljdflajsdfjasdjflaskjdflaksjdfljasldfkjasljdflajsasdlfkjasldfkjlas!")); 
     nameValuePairs.add(new BasicNameValuePair("title", "dsaghhhe fd!")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     //HttpResponse response = httpclient.execute(httppost); 
     //int status = response.getStatusLine().getStatusCode(); 
     ResponseHandler<String> responseHandler = new BasicResponseHandler(); 
     String responseBody = httpclient.execute(httppost, responseHandler); 
     Log.v(TAG, "response: " + responseBody); 
     //JSONObject response = new JSONObject(responseBody); 
     int f = 0; 
    } 
    catch(HttpResponseException e) 
    { 
     Log.e(TAG, e.getLocalizedMessage()); 
     Log.e(TAG, e.getMessage()); 
     e.printStackTrace(); 
    } 
+0

あなたは[hurl.it](http://hurl.it/)のようなものを使って、サーバー上のメッセージをチェックしようとしましたか? 「カール」も十分です。 –

+0

ああ。それは本当にデバッグに役立ちます!ブックマークしました!ありがとうございました! – TylerKinkade

答えて

2

との問題を抱えて:

String jsonParam = null; 
    try{ 
     JSONObject param = new JSONObject(); 
     param.put("state", "CA"); 
     param.put("city", "AndDev is Cool!"); 
     //and so on with other parameters 

     jsonParam = param.toString(); 
    } 
    catch (Exception e) { 
     // TODO: handle exception 
    } 

とのセットを投稿エンティティ:

if(jsonParam != null) 
    httppost.setEntity(new StringEntity(jsonParam, HTTP.UTF_8)); 
+0

助けてくれてありがとう! – TylerKinkade

1

422エラーは言う:Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors

あなたは以下のように事前に定義されたJSONクラスを使用して、より便利にお使いのパラメータを送信することがUrlEncodedFormEntity

+0

ええ、私はそれが私がそれを再評価するようになった今、私の構造に問題があると仮定しています。ありがとう。 – TylerKinkade

関連する問題