Ошибка неправильного типа контента при публикации на Parse.com RestAPI

Добрый день, немного мучаюсь с этим и не знаю, что делать дальше. Я использую Android-библиотеку Asynchronus Http здесь, чтобы отправить POST для анализа, но я продолжаю получать это сообщение об ошибке.

 {"code":107,"error":"This endpoint only supports Content-Type: application/json requests, not application/x-www-form-urlencoded."}

вот соответствующие части моего кода:

           client = new AsyncHttpClient();


        client.addHeader("Content-Type", "application/json");
        client.addHeader("X-Parse-Application-Id", context.getResources().getString(R.string.app_id));
        client.addHeader("X-Parse-REST-API-Key", context.getResources().getString(R.string.rest_api_key));


    RequestParams params = null;
    JSONObject json = new JSONObject();

           try {
                    json.put(NAME, player_text.getText().toString());
                    json.put(CLUB, club_text.getText().toString());
                } catch (JSONException e) {
                    e.printStackTrace();
                }

   params = new RequestParams("json",json); //takes a key value pair

   client.post(context, url, params, responsehandler); // posting to https://api.parse.com/1/classes/ABCDER/

я установил тип содержимого заголовка в application/json, поэтому я не знаю, почему я получаю сообщение об ошибке. я также запросил getContentType из параметров, чтобы увидеть, и это дает мне ошибку, на которую жаловался PARSE. Что я могу делать неправильно? Любая помощь высоко ценится. заранее спасибо


person irobotxx    schedule 27.06.2014    source источник


Ответы (1)


JSON необходимо публиковать как данные/тело, а не закодированные в параметрах URL.

Вот еще один ответ, который показывает, как: https://stackoverflow.com/questions/13052036/posting-json-xml-using-android-async-http-loopj/13901661#13901661

Итак, для вас:

JSONObject json = new JSONObject();

try {
    json.put(NAME, player_text.getText().toString());
    json.put(CLUB, club_text.getText().toString());
} catch (JSONException e) {
    e.printStackTrace();
}

StringEntity body = new StringEntity(json.toString());

client.post(context, url, body, "application/json", responsehandler);
person Timothy Walters    schedule 27.06.2014
comment
Спасибо! извините, я был в отъезде и не мог ответить раньше. - person irobotxx; 30.06.2014