什么方法可以让我不用等请求结果完全结束能访问返回请求的body,请给出Android的示例代码
时间: 2023-01-28 15:15:34 浏览: 78
在 Android 中,您可以使用 `AsyncTask` 来在后台线程中执行网络请求,并在请求完成后在主线程中访问返回的请求 body。
这是一个示例代码:
```
private class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1) {
char current = (char) data;
result += current;
data = reader.read();
}
return result;
} catch (Exception e) {
e.printStackTrace();
return "Failed";
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// 在这里访问返回的请求 body
// 例如,可以使用 TextView 来显示返回的结果:
TextView textView = findViewById(R.id.text_view);
textView.setText(result);
}
}
```
要使用这个 `AsyncTask`,您可以在需要发送请求的地方调用:
```
new DownloadTask().execute("https://www.example.com");
```
这将在后台线程中执行网络请求,并在请求完成后在主线程中调用 `onPostExecute` 方法。
阅读全文