如何解决“不允许x的明文HTTP流量" [英] How to fix 'Cleartext HTTP traffic to x not permitted'
问题描述
我正在尝试向http服务器发出发布请求,但是当我尝试获取输入流时,出现错误java.io.IOException: Cleartext HTTP traffic to x not permitted
I'm trying to make a post request to an http server, but when I try to get an input stream I get the error java.io.IOException: Cleartext HTTP traffic to x not permitted
我已经尝试过将android:usesCleartextTraffic="true"
放入清单中,以及进行网络安全配置并将android:targetSandboxVersion设置为1
I've already tried putting android:usesCleartextTraffic="true"
in my manifest, as well as making a network security config and setting the android:targetSandboxVersion to 1
app/src/main/res/xml/network_security_config.xml
app/src/main/res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">Server adress</domain>
</domain-config>
</network-security-config>
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.packagename"
android:targetSandboxVersion="1">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Logcat输出
D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
W/System.err: java.io.IOException: Cleartext HTTP traffic to x not permitted
W/System.err: at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:124)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:462)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:411)
W/System.err: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:248)
任何帮助将不胜感激
推荐答案
尝试仅使用
android:usesCleartextTraffic="true"
删除此2
android:targetSandboxVersion="1"
android:networkSecurityConfig="@xml/network_security_config"
mine仅在使用android:usesCleartextTraffic ="true"
mine is working in any API just using android:usesCleartextTraffic="true"
这篇关于如何解决“不允许x的明文HTTP流量"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!