0

Ich habe versucht, eine GET-Anfrage von Visual Studio Android Emulator zu einem ASP.Net Core API auf Localhost auszuführen. Ich lese zuerst, dass ich 10.0.2.2 IP verwenden, wenn die Anforderung von Android durchführen, so habe ich den folgenden HTTP-Client-Code in meinem Android (Xamarin) AppAndroid Emulator mit Localhost ASP.Net Core API-Aufrufe

protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 
      SetContentView (Resource.Layout.Main); 

      var logInbutton = FindViewById<Button>(Resource.Id.logInButton); 

      logInbutton.Click += OnLogInButtonClicked; 
     } 

     private async void OnLogInButtonClicked(object sender, EventArgs e) 
     { 
      using (var client = new HttpClient()) 
      { 
       client.DefaultRequestHeaders.Accept.Clear(); 
       client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 


       var uri = new Uri("http://10.0.2.2:5555/api/Orders?api-version=0.9"); 
       var response = await client.GetAsync(uri); 
      } 
     } 

jedoch jedes Mal, wenn ich versuchen, dieses I‘laufen m begrüßt mit einem Fehler. Ich weiß, dass die Anfrage in Ordnung ist, da ich denselben Http-Client-Code ohne Fehler von einer Konsolenanwendung aus ausführen kann. Ich lese dann, dass IIS Express keine externen Anfragen akzeptiert und da der Android Emulator in einer VM läuft, könnte dies der Grund sein.

Also folgte ich dann dem Hinweis auf diese SO post, wurde aber mit einem Invalid URI: The hostname could not be parsed Fehler begrüßt. Ich bin mir nicht sicher, wie ich von hier aus vorgehen soll. Gibt es eine Lösung für den Invalid URI: The hostname could not be parsed Fehler, oder sollte ich versuchen, IIS Express zu umgehen und nur mit Turmfalke für die Entwicklung zu laufen? Würde sogar das Laufen nur in Turmfalke dieses Problem beheben?

Antwort

0

Ich hatte ein ähnliches Problem.

Zuerst suchen wir die richtige applicationhost.config Datei. Sie sollten diesen Ort überprüfen:

[solution folder]/.vs/config/applicationhost.config 

Dann Ratschläge Menschen wie dies einzurichten Bindung:

<binding protocol="http" bindingInformation="*:5555:*" /> 

Es hat bei mir nicht funktioniert. Ich habe einen ungültigen URI erhalten: Der Hostname konnte nicht analysiert werden.

Was für mich getan hat Arbeit ist die Syntax wie folgt:

<binding protocol="http" bindingInformation=":5555:" /> 

Bitte beachten Sie, Port wird als Beispiel angegeben. Sie sollten den Port verwenden, den Ihr Server abhört.

Verwandte Themen