我正在尝试从API请求数据.API的要求如下:
我们的API的基本网址是https://api.openload.co/1(请注意1 /)背后的版本1
对API的所有请求都应为HTTP / 1.1 GET
请确保仅使用https的API。
大多数请求都需要API登录& API密钥,您可以在中找到 用户面板位于"用户设置"标签。响应是json,结构是 如下:
{ "status": <status-code>, "msg": "<informational message. might vary, use the status code in your code!>", "result": <result of the request. varies depending on the request> }
我使用以下方法获取json响应:
private static String makeHttpRequest(URL url) throws IOException {
String jsonResponse = "";
// If the URL is null, then return early.
if (url == null) {
return jsonResponse;
}
HttpsURLConnection urlConnection = null;
InputStream inputStream = null;
try {
urlConnection = (HttpsURLConnection) url.openConnection();
urlConnection.setReadTimeout(10000 /* milliseconds */);
urlConnection.setConnectTimeout(15000 /* milliseconds */);
urlConnection.setRequestMethod("GET");
urlConnection.connect()
// If the request was successful (response code 200),
// then read the input stream and parse the response.
if (urlConnection.getResponseCode() == 200) {
inputStream = urlConnection.getInputStream();
jsonResponse = readFromStream(inputStream);
} else {
Log.e(LOG_TAG, "Error response code: " + urlConnection.getResponseCode());
}
} catch (IOException e) {
Log.e(LOG_TAG, "Problem retrieving the earthquake JSON results.", e);
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
if (inputStream != null) {
// Closing the input stream could throw an IOException, which is why
// the makeHttpRequest(URL url) method signature specifies than an IOException
// could be thrown.
inputStream.close();
}
}
return jsonResponse;
}
但是我收到了响应代码403。 我使用下面的网址来测试它: https://api.openload.co/1/account/info?login= {登录}&安培;关键= {}键
从chrome请求时,响应是以文件的形式获得的。因为我期待json响应字符串并且服务器返回包含json的文件会导致问题吗?
有人可以指出我做错了什么,好像我在Chrome中使用相同的网址我得到了json响应,但似乎无法通过代码获得响应
答案 0 :(得分:0)
403的响应意味着您要么提交了不正确的凭据,要么提交了无效的凭据。所以,似乎有两个明显的地方可能会导致你的问题。
首先,您是否正确地将登录名和密钥设置为替换点的URL?
其次,您确定自己是有效且有效的登录名和密钥吗?