Android studio版本: 3.5.2
API 30
问题
在使用okhttp+gson请求网络数据并解析的时候,请求解析失败:部分报错信息如下:
qemu_pipe_open_ns: Could not connect to the ‘pipe:qemud:network’ service: Invalid argument
RemoteConnection Failed to initialize: RemoteConnection Failed to open pipe
无法打开QEMU管道’qemud:network’:无效的参数(Failed to open QEMU pipe ‘qemud:network’: Invalid argument)
报错原因:
因为Android Emulator在7.0版本及以上提高了对不安全请求的限制级别,当我们的应用尝试向不安全的远程API(http)发送/接收请求/响应时,无法通过安全请求,就会发生这种情况。
解决方法:
方法一: 在Android清单文件application标记中配置降低安全级别解决
android:usesCleartextTraffic="true"
上面这个方法可以解决,但是缺点就是它倾向于对数据完整性构成威胁.所以我们更多选择下面这种方法来解决
方法二: 配置安全权限
- 右键res-> New-> Android Resource Directory。创建一个名为
xml
的资源目录 - 右键上面新建的xml文件夹:xml-> New-> Android Resource File
命名为:network_security_config
并加入如下代码:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">your_site_domain.com</domain>
</domain-config>
</network-security-config>
android:networkSecurityConfig="@xml/network_security_config"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。