我正在研究xamarin形式。我在哪里使用API。当我在android 5中运行该应用程序时,它工作正常,但如果我在运行7+,则出现类似错误
无法解析主机“ almsdev.southeastasia.cloudapp.azure.com”:没有与主机名关联的地址。
如何解决这个问题?
以下是代码段:
public async Task<HttpResponseMessage> Login(string EmailOrMobile)
{
try
{
var responseTask = await client.GetAsync(OauthBaseUrl + "OAuthSAAS/MSLogin?UserCredentials=" + EmailOrMobile);
return responseTask;
}
catch (Exception ex)
{
Crashes.TrackError(ex);
return null;
}
}
在按钮上单击“我正在调用上述方法”
private async void fn_Submit_Clicked(object sender, EventArgs e)
{
var response = await _oauthService.Login(txt_credentails.Text.Trim());
}
我的基本URL是
http://almsdev.southeastasia.cloudapp.azure.com:81/api/
我正在使用 Http客户端=新的Http();
答案 0 :(得分:0)
由于您的目标是Android 9.0(API级别28),因此默认情况下会禁用明文(非HTTPS)支持。 要解决此问题,您可以:使用HTTPS,或添加配置以允许http流量。
首先,在您的Android项目中,创建一个文件夹:xml并添加文件network_security_config
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">almsdev.southeastasia.cloudapp.azure.com</domain>
</domain-config>
</network-security-config>
然后,在您的Manifest.xml
<application android:label="YourAppName" android:networkSecurityConfig="@xml/network_security_config">
中阅读更多内容
答案 1 :(得分:0)
尝试将登录凭据添加到Header Http Client。