带有HTTP Post请求的NameResolutionFailure。

时间:2016-10-05 09:12:11

标签: c# android visual-studio xamarin xamarin.android

我正在使用Xamarin编写Android应用程序。我有两个EditText字段的登录屏幕。

我需要通过HTTP POST请求为登录请求编写代码。

我有这段代码:

 Button signin = FindViewById<Button>(Resource.Id.btn);
        var email = FindViewById<EditText>(Resource.Id.username);
        var password = FindViewById<EditText>(Resource.Id.password);

        email_data = email.Text;
        password_data = password.Text;

        signin.Click += async delegate
        {


            if (string.IsNullOrEmpty(email.Text))
            {
                Toast.MakeText(this, "Please, fill email", ToastLength.Long).Show();
            }
            if (string.IsNullOrEmpty(password.Text))
            {
                Toast.MakeText(this, "Please, fill password", ToastLength.Long).Show();
            }
            else
            {
                var client = new HttpClient();
                var content = new StringContent(
                    JsonConvert.SerializeObject(new { username = email_data, password = password_data }));
                var result = await client.PostAsync("http://stg-api.tieit.io/auth/login", content).ConfigureAwait(false);
                if (result.IsSuccessStatusCode)
                {
                    var tokenJson = await result.Content.ReadAsStringAsync();
                    Console.WriteLine(tokenJson.ToString());
                }

                var intent = new Intent(this, typeof(HomeView));
                StartActivity(intent);

            }
        };

但是当我点按signin按钮时,我有这个错误。

System.Net.WebException: Error: NameResolutionFailure

  

未处理例外情况:10-05 12:06:26.877 E / mono(27175):   System.Net.WebException:错误:NameResolutionFailure 10-05   12:06:26.877 E / mono-rt(27175):[ERROR]致命的未处理例外情况:   System.Net.WebException:错误:NameResolutionFailure 10-05   12:06:26.889 I / IspDrv(27175):{IspDrv} [~IspDrvImp]

我如何解决?

感谢帮助

1 个答案:

答案 0 :(得分:2)

我刚刚为stg-api.tieit.io做了nslookup并且没有返回任何结果,但是我获得了tieit.io的IP。如果子域stg-api.tieit.io位于专用网络上,则您的代码需要在同一专用网络上的设备上运行。如果该子域应该在Internet上,则需要为stg-api.tieit.io创建DNS条目以将其映射到IP地址。如果您无法控制该域的DNS条目,请与您的IT经理联系。