Visual StudioのAndroidエミュレータからlocalhost上で動作するASP.NetコアAPIにGETリクエストを実行しようとしています。私が最初に私は、Androidからの要求を実行する際にIP 10.0.2.2
を使用する必要があること読んで、私は、ローカルホストASP.NetコアAPIコールを使用したAndroidエミュレータ
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);
}
}
しかし私のアンドロイド(Xamarin)アプリケーションでは、私はこのI」を実行しようとするたびに、次のHTTPクライアントコードを持っていますmは400 Bad Request
エラーで挨拶しました。私は、エラーなしでコンソールアプリケーションから同じHTTPクライアントコードを実行できるので、リクエストは大丈夫だとわかります。私はその後、IIS Expressは外部リクエストを受け入れず、AndroidエミュレータがVMで動作しているので、これが理由である可能性があることを読んでいます。
したがって、このSO postのアドバイスに従いましたが、Invalid URI: The hostname could not be parsed
というエラーで迎えました。私はここから進める方法がわかりません。 Invalid URI: The hostname could not be parsed
エラーの解決策がありますか、またはIIS Expressを回避し、開発のためにkestrelを単独で実行する必要がありますか? kestrelだけで走っていてもこの問題を解決できますか?