簡體   English   中英

Android從POST Http執行中獲取JSON返回錯誤

[英]Android Getting JSON return error from POST Http execution

我目前正在嘗試通過POST將數據發送到服務器,服務器正在處理數據並將其附加到JSON文件中。 我目前收到422錯誤,並且已經有一段時間了。 我的問題是:如何在Java中接收到JSON錯誤本身,以便查看錯誤是什么。 我所看到的只是一個HttpResponseException,它沒有給我其他任何東西。 感謝您的時間和事先的幫助。

        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();
    }

您可以使用以下預定義的Json類來更方便地發送參數:

    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));

422錯誤說: Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors

您遇到了UrlEncodedFormEntity問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM