在Android中使用OkHttp进行POST请求,并将响应转换为正确的JSONArray时,可以采取以下步骤:
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new FormBody.Builder()
.add("param1", value1)
.add("param2", value2)
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
String jsonString = response.body().string();
JSONArray jsonArray = new JSONArray(jsonString);
请注意,上述代码是在主线程中执行的。如果使用异步方式执行网络请求,可以使用OkHttp的enqueue方法来执行请求并处理响应。以下是一个使用回调方法处理异步请求的示例:
OkHttpClient client = new OkHttpClient();
RequestBody requestBody = new FormBody.Builder()
.add("param1", value1)
.add("param2", value2)
.build();
Request request = new Request.Builder()
.url(url)
.post(requestBody)
.build();
client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
// 处理请求失败情况
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String jsonString = response.body().string();
try {
JSONArray jsonArray = new JSONArray(jsonString);
// 在这里处理JSONArray
} catch (JSONException e) {
e.printStackTrace();
}
}
});
以上是使用OkHttp进行POST请求并将响应转换为JSONArray的解决方法。根据你的具体需求,可以适当调整代码。