0

我正在尝试使用此代码连接到调查 monekey API,但该代码不起作用。即使我从 API 控制台获取了 API,它也会显示“无效的 API 密钥”。

 public void fetch() {
        String url = "https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=" + apiKey;
        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.setDoOutput(true);
            conn.setRequestMethod("POST");

            conn.setRequestProperty("Authorization", "bearer " + accessToken);
            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();
        }
    }

这是错误:

request being sent
https://api.surveymonkey.net/v2/surveys/get_survey_list?api_key=---API-KEY----
The response code received is 200
Output from Server .... 
{"status":3,"errmsg":"Expected object or value"}

我刚刚从 API 控制台获得了这个 url。

4

2 回答 2

1

确保您使用的是与您在http://developer.surveymonkey.com注册的开发者帐户关联的 API 密钥,而不是控制台用来让您尝试请求的示例 API 密钥。示例 api 密钥不适用于应用程序,仅用于 API 控制台。

于 2014-10-28T20:27:29.627 回答
0

当为 POST 数据发送空字符串时,会生成该特定错误。API 至少需要一个空对象(“{}”)。如果上面 Miles 指出的问题只是一个错字(使用“getRequestProperty”而不是“setRequestProperty”),请检查空 JSONObject 上的 toString 是否返回“”或“{}”。

于 2014-11-03T19:27:51.967 回答