0

我正在使用解析 REST API 来获取我的程序的版本 ID,当我尝试连接 java 程序时返回带有 401 错误的 IOException 但是当我用浏览器连接到它时,我正确地得到了 JSON 格式,为什么?

我收到这个错误。

java.io.IOException: Server returned HTTP response code: 401 for URL: https://XXXXXX-key=XXXXXXXXX@api.parse.com/1/classes/NicksNoteVersion/xngGDAa1k3
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at startup.Launcher.main(Launcher.java:26)

`

我的程序代码是:

try{
    URL url = new URL("https://XXXXXX:javascript-key=XXXXXXX@api.parse.com/1/classes/NicksNoteVersion/xngGDAa1k3");
    JSONTokener tokener = new JSONTokener(url.openStream());
    JSONObject json = new JSONObject(tokener);
    }catch(Exception e){
        e.printStackTrace();
        System.out.println("Version retrieval failed");
    }
4

1 回答 1

1

尝试按照文档设置自定义标题:

身份验证是通过 HTTP 标头完成的。X-Parse-Application-Id 标头标识您正在访问的应用程序,而 X-Parse-REST-API-Key 标头对端点进行身份验证。

URL url = new URL("...");
URLConnection conn = url.openConnection();
conn.setRequestProperty("X-Parse-Application-Id", "...");
conn.setRequestProperty("X-Parse-REST-API-Key", "...");
JSONTokener tokener = new JSONTokener(conn.getInputStream());
...
于 2013-04-27T12:24:39.700 回答