解决 okhttp3.internal.http.RealResponseBody

1,219 阅读1分钟

问题起因

在上文中解决了 java.net.UnknownServiceException: CLEARTEXT communication to v.juhe.cn not permitted by network security policy的问题之后,发现可以对url成功访问,但是对于获取的数据无法呈现对应的数据,即无法解析,原数据为一些简短的笑话,呈现的效果却是 okhttp3.internal.http.RealResponseBody

原因分析

根据这个呈现的信息,我们可以知道我们成功获取了ResponseBody,但是却没有把它正确的进行解析,因此先去查看原始代码

image.png 我们将服务器端返回的response.body进行了toString处理,最终呈现在一个TextView上,代码未报错,看似也没有啥问题,但是我们需要了解一个知识,针对于发送网络请求获取的ResponseBody有专门的的解析函数 string

image.png

解决方法

因此我们将原始代码中的.toString()修改为.string()并添加非空判断,即可成功解析数据并呈现在TextView

image.png

参考文献

square.github.io/okhttp/4.x/…