2016-10-05 7 views
2

私はXamarinを使用してAndroidアプリケーションを作成しています。私は2つのEditTextフィールドを持つログイン画面を持っています。HTTPRequestFailureのHTTP Post要求を使用します。

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

Unhandled Exception: 10-05 12:06:26.877 E/mono (27175): System.Net.WebException: Error: NameResolutionFailure 10-05 12:06:26.877 E/mono-rt (27175): [ERROR] FATAL UNHANDLED EXCEPTION: System.Net.WebException: Error: NameResolutionFailure 10-05 12:06:26.889 I/IspDrv (27175): {IspDrv} [~IspDrvImp]

私はそれを解決できますか?

感謝のヘルプ

+1

あなたはアプリケーションの権限をチェックしましたか?このエラーは、アプリケーションにインターネットへのアクセス権がない場合に発生します。 – auX

+0

あなたは 'ACESS_NETWORKSTATE'と'インターネット 'について話していますか? @auX – Eugene

+0

をチェックして、@auX – Eugene

答えて

2

のために、私はちょうどstg-api.tieit.ioためnslookupを行なったし、何も結果が返されなかった、しかし私はtieit.ioのためのIPを取得します。サブドメインstg-api.tieit.ioがプライベートネットワーク上にある場合、コードは同じプライベートネットワーク上のデバイス上で実行する必要があります。そのサブドメインがインターネット上に存在する必要がある場合は、stg-api.tieit.ioのDNSエントリを作成してIPアドレスにマッピングする必要があります。そのドメインのDNSエントリを制御できない場合は、ITマネージャーに相談してください。

関連する問題