2016-10-20 4 views
3

J'utilise HTTPClient dans .netcore mais je suis confronté à un problème lorsque j'ajoute un en-tête d'acceptation personnalisé.HttpClient dans .netcore ajoute automatiquement un espace dans l'en-tête

var client = new HttpClient { Timeout = new TimeSpan(0, 5, 0)}; 
client.DefaultRequestHeaders.Clear(); 
client.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "application/vnd.pagseguro.com.br.v3+json;charset=ISO-8859-1"); 

Mais après cela, ce que je vois est qu'un espace a été ajouté automatiquement, ce qui « application/vnd.pagseguro.com.br.v3+json; charset=ISO-8859-1 ». Cet espace me cause un problème car le serveur me renvoie une erreur. Sans cet espace, cela fonctionne.

Est-il possible de supprimer cet espace dans l'en-tête HttpClient? Les moyens conventionnels ne fonctionnent pas, comme trim, ou juste replace une fois qu'il est à l'intérieur d'un DefaultRequestHeaders et je ne peux pas modifier directement.

+0

Je ne pense pas. Cela semble étrange cependant. Le serveur devrait l'accepter. Les espaces sont autorisés selon la norme. –

+0

Je pense aussi. Mais malheureusement, les serveurs UOL n'acceptent pas avec de l'espace. J'ai aussi testé sur le facteur. Mais merci pour le commentaire Patrick –

+0

Qu'est-ce que UOL ...? –

Répondre

1

J'ai réussi à résoudre ce problème en créant un nouveau microservice avec .net Framework 4.5. En utilisant HttpWebRequest, l'en-tête n'ajoute pas d'espace automatiquement entre le charset et accept. Merci pour l'aide = D