Sof*_*Dev 13 https http xamarin.android xamarin.forms cleartext
我的应用程序存在问题,不允许到 x 的明文 HTTP 流量。
我已经尝试将 android:usesCleartextTraffic="true" 放入我的清单中。但我想将“android:usesCleartextTraffic”标志更改为“false”以防止发送未加密的流量。
怎么解决这个问题呢?
tho*_*iel 41
如果在某个时候您想移动到MAUI(没有AssemblyInfo.cs),您可能需要将UsesCleartextTraffic) 添加到您的应用程序属性中Platforms/Android/MainApplication.cs:
#if DEBUG // connect to local service on the
[Application(UsesCleartextTraffic = true)] // emulator's host for debugging,
#else // access via http://10.0.2.2
[Application]
#endif
public class MainApplication : MauiApplication
{
...
}
Run Code Online (Sandbox Code Playgroud)
小智 18
您可以用一行代码解决这个问题。在 android 项目的属性下打开 AssemblyInfo.cs 并添加以下代码:
[assembly: Application(UsesCleartextTraffic = true)]
Run Code Online (Sandbox Code Playgroud)
小智 18
在 Maui 中,展开 Platforms/Android 并编辑 MainApplication.cs。
将顶部附近的“[Application]”替换为“[Application(UsesCleartextTraffic = true)]”
假设您正在访问不支持 HTTPS 的服务器,那么您可以在网络安全配置中创建例外。net_sec_conf.xml您可以创建一个这样的文件:
<?xml version="1.0" encoding="utf-8" ?>
<network-security-config>
<base-config cleartextTrafficPermitted="false">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.example.org</domain>
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</domain-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)
然后在清单文件中添加以下行:
android:networkSecurityConfig="@xml/net_sec_conf"
Run Code Online (Sandbox Code Playgroud)
(假设您已将文件放入 xml 文件夹中)。这样,明文 HTTP 流量将仅允许用于指定的域。
当然,如果服务器支持HTTPS,那么你只需要将你的URL“http://...”更改为“https://...”。
| 归档时间: |
|
| 查看次数: |
24258 次 |
| 最近记录: |