BaseAddress de HttpClient : un examen plus approfondi
Cet article clarifie le comportement souvent mal compris de la propriété BaseAddress
de HttpClient
. De nombreux développeurs rencontrent des résultats inattendus lors de la construction d'URI à l'aide d'une BaseAddress
partiellement définie. Nous analyserons le problème et présenterons l'utilisation correcte pour garantir que vos requêtes GET
atteignent toujours la cible prévue.
Le problème : construction d'URI inattendue
Définition de BaseAddress
sur "http://something.com/api", puis utilisation de "/resource/7" comme URI relatif dans GetAsync
peut sembler que cela devrait donner "http://something.com/api/resource/7". Cependant, cela échoue généralement. L'ajout d'une barre oblique finale à BaseAddress
("http://something.com/api/") ne garantit pas non plus le succès.
La pièce manquante : documentation et application pratique
Bien que la documentation officielle mentionne BaseAddress
comme « adresse de base de la ressource Web », elle manque d'indications explicites sur le rôle crucial des barres obliques. Grâce à l'expérimentation, la solution devient claire :
BaseAddress
nécessite une barre oblique finale (/).GetAsync
ne devrait pas commencer par une barre oblique (/).La mise en œuvre correcte
Le code suivant illustre la combinaison réussie :
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");
}
Cela cible correctement "http://something.com/api/resource/7".
Conclusion : Maîtriser BaseAddress pour des requêtes HTTP fiables
L'utilisation efficace de HttpClient
de BaseAddress
dépend d'une compréhension précise du placement des barres obliques. En suivant les directives décrites ci-dessus (une barre oblique finale dans BaseAddress
et aucune barre oblique initiale dans l'URI relatif), les développeurs peuvent garantir un comportement cohérent et prévisible dans leurs requêtes HTTP. Ce détail apparemment mineur peut éviter d'importants problèmes de débogage.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3