Android Получение JSON возвращает ошибку при выполнении POST Http - PullRequest
0 голосов
/ 18 февраля 2012

В настоящее время я пытаюсь отправить данные через POST на сервер, и сервер обрабатывает данные и добавляет их в файл JSON.В настоящее время я получаю сообщение об ошибке 422 и получаю его некоторое время.Мой вопрос: как я могу получить эту ошибку JSON в Java, чтобы я мог видеть, что это за ошибка.Все, что я вижу, это исключение 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();
    }

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Вы можете отправить свои параметры более удобно, используя предопределенный класс 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));
1 голос
/ 18 февраля 2012

422 ошибка говорит: Unprocessable Entity - The request was well-formed but was unable to be followed due to semantic errors

У вас проблема с UrlEncodedFormEntity

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...