使用okhttp写出完整代码
时间: 2024-08-15 14:01:33 浏览: 97
当你想使用OkHttp库在Android项目中发送POST请求并带有上述提到的header和body信息,这是一个完整的Java示例代码片段:
首先确保已添加OkHttp依赖到build.gradle文件中(如果还没有的话):
```gradle
dependencies {
implementation 'com.squareup.okhttp3:okhttp:4.9.0' // 或者最新版本
}
```
然后在你的Activity、Fragment或者其他合适的上下文中,编写以下代码:
```java
import okhttp3.*;
public class YourActivity extends AppCompatActivity {
private static final String BASE_URL = "http://192.13.44.219:18081/bydata-rest-api/api/server/ht_bzdz_dzmc";
private static final MediaType JSON = MediaType.get("application/json; charset=utf-8");
private OkHttpClient client;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化OkHttpClient
client = new OkHttpClient();
// 请求参数
RequestBody requestBody = new FormBody.Builder()
.add("pageNum", "1") // 假设pageNum固定值
.add("pageSize", "10")
.add("f_ssjlxxq_dzbm", "") // 根据实际情况填充
.add("f_dzbm", "") // 根据实际情况填充
.add("f_update_time", "") // 根据实际情况填充
.add("f_sjgsdwdm", "") // 根据实际情况填充
.build();
// 创建POST请求
Request request = new Request.Builder()
.url(BASE_URL)
.post(requestBody)
.header("appCode", "wystj56467e1a45f9949fbd66aed08997") // 设置header
.build();
// 发送请求
executeRequest(request);
}
// 执行异步请求
private void executeRequest(Request request) {
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 处理网络错误
e.printStackTrace();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (!response.isSuccessful()) {
throw new RuntimeException("Unexpected code " + response);
}
try (ResponseBody body = response.body()) {
String responseBody = body.string();
// 解析JSON响应并进行业务处理
parseJsonResponse(responseBody);
}
}
});
}
// 解析JSON响应
private void parseJsonResponse(String jsonString) {
// 这里使用Gson或者其他JSON解析库将字符串转换成具体对象
Gson gson = new Gson();
ServerData serverData = gson.fromJson(jsonString, ServerData.class);
// 对数据做进一步处理
}
}
```
在这个例子中,`YourActivity`中的`executeRequest`方法用于发起POST请求,`parseJsonResponse`方法用于解析服务器返回的JSON数据。注意替换`f_ssjlxxq_dzbm`等变量的空值为你实际需要的值。
阅读全文