发布到Parse.com RestAPI时出现错误的内容类型错误

时间:2014-06-27 18:07:05

标签: android parse-platform android-async-http

美好的一天,我一直在苦苦挣扎,不知道该怎么做。我正在使用android Asynchronus Http Library here发送一个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,所以我不知道为什么我收到错误。我还要求params的getContentType看到,它给了我PARSE抱怨的错误。我能做错什么?任何帮助都是高度赞赏的。提前致谢

1 个答案:

答案 0 :(得分:0)

JSON需要作为数据/正文发布,而不是在URL参数中编码。

以下是另一个答案,说明如何:POSTing JSON/XML using android-async-http (loopj)

所以对你:

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