问题描述:Android / HTTP GET不能正确读取REST API
解决方法:
private class HttpGetTask extends AsyncTask {
@Override
protected String doInBackground(String... urls) {
String response = "";
HttpURLConnection urlConnection = null;
try {
URL url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
// 设置请求方式为GET
urlConnection.setRequestMethod("GET");
// 设置连接超时时间和读取超时时间
urlConnection.setConnectTimeout(5000);
urlConnection.setReadTimeout(5000);
// 发起请求
urlConnection.connect();
// 读取响应
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
response += line;
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
return response;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// 在此处处理返回的结果
// result即为从API获取到的数据
}
}
// 在需要执行HTTP GET请求的地方调用以下代码:
new HttpGetTask().execute("http://your-rest-api-url");
确保URL正确,并根据API的要求正确设置请求头和参数。可以使用Postman等工具测试API是否正常工作。
检查API是否需要身份验证(例如API密钥、令牌等)。如果需要身份验证,确保将身份验证信息包含在请求头中。
检查API返回的数据格式。如果API返回的是JSON数据,可以使用Gson等库来解析JSON数据。
如果上述方法仍然无法解决问题,可能是由于服务器端的问题。可以联系API提供者以获取更多帮助。
希望以上解决方法能够帮助到您解决问题!