"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Pourquoi mon adresse de base HttpClient ne fonctionne-t-elle pas comme prévu ?

Pourquoi mon adresse de base HttpClient ne fonctionne-t-elle pas comme prévu ?

Publié le 2025-01-19
Parcourir:965

Why Doesn't My HttpClient BaseAddress Work As Expected?

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 (/).
  • L'URI relatif dans 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.

Dernier tutoriel Plus>

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