【问题标题】:How to resolve "Unable to resolve host" error?如何解决“无法解析主机”错误?
【发布时间】:2019-06-13 18:54:07
【问题描述】:

我正在处理 xamarin 表单。我在哪里使用 API。当我在 android 5 中运行该应用程序时,它工作正常,但如果我运行 7 + 它会给出类似的错误

无法解析主机“almsdev.southeastasia.cloudapp.azure.com”:没有与主机名关联的地址。

如何解决?

下面是sn-p的代码:

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()); 
 }

我的基本网址是
http://almsdev.southeastasia.cloudapp.azure.com:81/api/

我正在使用 Http 客户端 = new Http();

【问题讨论】:

  • 将您的基本 url 更改为 HTTPS,这是在更高版本的 android 中强制执行的。
  • 你的 Android Target 版本是多少?
  • @BrunoCaceiro,我的安卓目标版本是 9.0(Pie)
  • @Digitalsa1nt 我会更改并通知您。

标签: xamarin asp.net-web-api xamarin.forms xamarin.android


【解决方案1】:

由于您的目标是 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">

您可以在Xamarin Blog Post阅读更多内容

【讨论】:

  • 感谢您的回复。现在我得到一个不同的错误,比如“握手失败”。
【解决方案2】:

尝试将登录凭据添加到您的 Header Http 客户端。

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2017-10-19
    • 2016-02-13
    • 2019-12-19
    相关资源
    最近更新 更多