Betrachten Sie den folgenden Code, wobei BaseAddress
einen partiellen URI-Pfad definiert.Warum funktioniert HttpClient BaseAddress nicht?
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api");
var response = await client.GetAsync("/resource/7");
}
Ich erwarte, dass dies eine GET
Anfrage http://something.com/api/resource/7
auszuführen. Aber das tut es nicht.
Nach einigem Suchen finde ich diese Frage und Antwort: HttpClient with BaseAddress. Der Vorschlag ist, /
am Ende der BaseAddress
zu platzieren.
using (var handler = new HttpClientHandler())
using (var client = new HttpClient(handler))
{
client.BaseAddress = new Uri("http://something.com/api/");
var response = await client.GetAsync("/resource/7");
}
Es funktioniert immer noch nicht. Hier ist die Dokumentation: HttpClient.BaseAddress Was ist hier los?
Mögliches Duplikat von [HttpClient mit BaseAddress] (http://stackoverflow.com/questions/20609118/httpclient-with-baseaddress) –
@ ГеоргийЛанец Das umgekehrte Duplikat wurde bereits vorgeschlagen. Ich habe diese Frage speziell geschrieben, weil diese andere Frage nicht auf eine Weise geschrieben wurde, die für Leute mit dem gleichen Problem sehr auffindbar war, und ich schrieb die Antwort hier, weil die Antwort dort einen wichtigen Punkt verließ. –
aber diese Frage wird später gestellt –