android json post请求通信模块封装实例
时间: 2023-09-17 14:03:30 浏览: 148
Android的JSON请求案例
Android中使用JSON进行POST请求通信,可以使用HttpURLConnection或HttpClient来实现。以下是一个简单的示例,展示如何封装一个POST请求通信模块。
1. 首先,创建一个名为HttpUtils的类,并将其声明为单例模式,以便在整个应用程序中共享。
```java
public class HttpUtils {
private static HttpUtils instance;
private HttpUtils() {}
public static synchronized HttpUtils getInstance() {
if (instance == null) {
instance = new HttpUtils();
}
return instance;
}
// 实现发送POST请求的方法
public void sendPostRequest(String url, JSONObject postData, final OnResponseListener listener) {
new Thread(new Runnable() {
@Override
public void run() {
try {
// 创建连接和设置请求参数
URL url = new URL(url);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setConnectTimeout(5000);
connection.setRequestProperty("Content-Type", "application/json");
connection.setDoOutput(true);
// 发送数据
OutputStream outputStream = connection.getOutputStream();
outputStream.write(postData.toString().getBytes());
outputStream.flush();
outputStream.close();
// 获取响应数据
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
StringBuilder response = new StringBuilder();
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
inputStream.close();
// 回调响应结果
listener.onResponse(response.toString());
} else {
listener.onError("请求失败:" + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
listener.onError("请求失败:" + e.getMessage());
}
}
}).start();
}
}
```
2. 创建一个名为OnResponseListener的接口,用于回调请求的响应结果。
```java
public interface OnResponseListener {
void onResponse(String response);
void onError(String error);
}
```
3. 在使用该模块时,可以调用sendPostRequest方法发送POST请求,并传入请求URL、JSON数据和OnResponseListener回调对象。
```java
HttpUtils.getInstance().sendPostRequest("http://example.com/api", jsonData, new OnResponseListener() {
@Override
public void onResponse(String response) {
// 处理请求成功的响应结果
}
@Override
public void onError(String error) {
// 处理请求失败的情况
}
});
```
通过这个模块封装实例,可以方便地发送JSON格式的POST请求,并根据请求结果进行相应的处理。
阅读全文