在我的应用程序中,我必须在活动开始后调用API约20次。没有可能在一次通话中获得所有数据。
目前我只使用Android-Async-Http进行一次这样的调用,效果很好:
client = new AsyncHttpClient();
client.get(DetailsActivity.this, url, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
//working with the data
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
但对API进行多次调用的最佳方法是什么?
好的,这就是我现在这样做的方式:
protected String doInBackground(String... params) {
URL url;
BufferedReader reader = null;
String s = "";
try {
url = new URL(params[0]);
URLConnection con = url.openConnection();
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line = null;
while ((line = reader.readLine()) != null) {
s = s + line;
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Log.i(null, "response: " + s);
return s;
}
这允许我同时启动大量请求。
提前致谢
迈克尔