写一个android网络请求
时间: 2024-05-19 19:10:45 浏览: 17
以下是一个简单的 Android 网络请求示例代码:
```java
public class NetworkRequestTask extends AsyncTask<String, Void, String> {
private Context mContext;
private OnNetworkRequestListener mListener;
public NetworkRequestTask(Context context, OnNetworkRequestListener listener) {
mContext = context;
mListener = listener;
}
@Override
protected String doInBackground(String... params) {
String url = params[0];
String result = null;
try {
URL requestUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) requestUrl.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder = new StringBuilder();
String line;
while ((line = bufferedReader.readLine()) != null) {
stringBuilder.append(line);
}
result = stringBuilder.toString();
bufferedReader.close();
inputStream.close();
connection.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
@Override
protected void onPostExecute(String result) {
if (result != null) {
mListener.onSuccess(result);
} else {
mListener.onError();
}
}
public interface OnNetworkRequestListener {
void onSuccess(String result);
void onError();
}
}
```
使用时,可以在 Activity 或 Fragment 中调用:
```java
NetworkRequestTask task = new NetworkRequestTask(mContext, new NetworkRequestTask.OnNetworkRequestListener() {
@Override
public void onSuccess(String result) {
// 处理请求成功的结果
}
@Override
public void onError() {
// 处理请求失败的情况
}
});
task.execute("http://example.com/api/data");
```
其中,`OnNetworkRequestListener` 接口用于处理网络请求成功或失败的回调。在 `doInBackground` 方法中,我们使用 `HttpURLConnection` 进行网络请求,并将请求结果通过 `String` 类型的返回值返回给 `onPostExecute` 方法。在 `onPostExecute` 方法中,我们根据请求结果是否为空来判断请求是否成功,并通过 `OnNetworkRequestListener` 回调方法将结果传递给调用者。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)