0

編集:提案をありがとう。文字列ではなくjsonオブジェクトを実装するようにコードを変更し、本文で送信しました

これは調査サルから詳細を取得しようとしたものです。応答コードは 200 ですが、必要なデータを取得できませんでした。誰かが私がこれを間違っているところを教えてください。この URL は、私がやろうとしていることを特定するのに役立つかもしれません https://developer.surveymonkey.com/mashery/requests_responses これは o/p {"status": 3, "errmsg": "No JSONオブジェクトはデコードできました: 行 1 列 0 (文字 0)"}

    package surveydetails;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;

public class Surveydetails {

        public static void main(String args []) {       
        String url = "https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=myapikey";                    
                    System.out.println("request being sent");
                    System.out.println(url);
                    JSONObject obj = new JSONObject();



                    try {
                        //byte[] postDataBytes = obj.toJSONString().getBytes("UTF-8");
                        URL ourl = new URL(url.toString());
                        HttpURLConnection conn = (HttpURLConnection) ourl.openConnection();
                        conn.setRequestMethod("POST");


conn.setRequestProperty("Authorization", "bearer myauthtoken"); 
conn.setRequestProperty("Content-Type", "application/json");

conn.getRequestProperty(obj.toString().getBytes("UTF-8").toString());


                        int k = conn.getResponseCode();
                        System.out.println("The response code received is "+k);
                        if (conn.getResponseCode() != 200) {
                            throw new RuntimeException("Failed : HTTP error code : "
                                    + conn.getResponseCode());
                        }
                        BufferedReader br = new BufferedReader(new InputStreamReader(
                                (conn.getInputStream())));

                        String output;

                        System.out.println("Output from Server .... \n");


                            output = br.readLine();
                            System.out.println(output);


                    } catch (MalformedURLException e) {

                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
}
4

1 に答える 1

0

POST 本文の JSON エンコーディングが無効です。

あなたのコードString body=" '{\"fields\":[\"title\"]}'";

する必要がありますString body="{\"fields\":[\"title\"]}";

無効な JSON を避けるために、JSON オブジェクトをエンコードするときにjson-simple のような JSON ライブラリを使用することをお勧めします。アプリケーションが開発されるにつれて、ライブラリはより柔軟になります。

于 2014-03-07T23:02:23.820 に答える