使用OkHttp将HTTP响应转换为JSON对象的过程可以分为以下几个步骤: 获取OkHttp的HttpResponse对象: 使用OkHttp发送HTTP请求后,会得到一个Response对象,该对象包含了服务器的响应信息。 从HttpResponse中提取响应体内容: 通过调用Response对象的body()方法,可以获取到响应体(ResponseBody),然后通过调用string()方法将其转换...
OkHttpClientclient=newOkHttpClient();Requestrequest=newRequest.Builder().url(".build();try{Responseresponse=client.newCall(request).execute();StringresponseData=response.body().string();JSONObjectjson=newJSONObject(responseData);Stringkey=json.getString("key");intvalue=json.getInt("value");}catc...
如果响应体是JSON格式的,我们可以将OkHttp的ResponseBody对象转换为JSON对象,以便于解析和处理。以下是一个将ResponseBody对象转换为JSON对象的示例代码: OkHttpClientclient=newOkHttpClient();Requestrequest=newRequest.Builder().url(".build();try(Responseresponse=client.newCall(request).execute()){ResponseBodyre...
// 将返回的响应结果字符串转化成为Json对象JSONObject resultJson=newJSONObject(response.body().string());System.out.println("获取网页源码: "+resultJson);// 获取请求头Headers requestHeader=request.headers();System.out.println("获取请求头: "+requestHeader);// 获取响应头Headers responseHeader=respon...
为了解决这个问题,可以使用response.body().string()方法来获取原始的字节流,并进一步处理这个字节流以得到JSON字符串。OkHttp在调用string()方法时会尝试使用Gson或Jackson库对内容进行解析,将字节流转换为对应的JSON对象或字符串。如果这些库已经包含在你的项目中,那么这一步骤就能自动完成,你将得到...
(responseData.toString());}@OverridepublicvoidonFailure(Call call,IOException e){//在这里进行异常情况处理}});}}).start();}privatevoidparseJSONWithGSON(String jsonData){//使用轻量级的Gson解析得到的jsonGson gson=newGson();List<App>appList=gson.fromJson(jsonData,newTypeToken<List<App>>(){}....
myResponse.data =data2; } Log.e(TAG, "onResponse: "+ myResponse.toString()); } catch (IOException e) { e.printStackTrace(); } } } 引发原因:泛型擦除导致。无上下界的泛型 xxx<T> , 在编译后的class文件中,都会变成xxx<Object>,导致json解析时无法获取到对应泛型的类型参数,所以无法正常解析。
把String json = response.body().toString();换成String json = response.body().string();就可以了
Response response = okHttpClient.newCall(request).execute(); System.out.println(response.body().string()); } catch (IOException e) { e.printStackTrace(); } } } 结果 __EOF__ 本文作者:持之以恒(韧) 关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等 面试必...
public void onResponse(Call call, Response response) throws IOException { if(response.code()==200) { System.out.println(response.body().string()); } }); 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.