web-dev-qa-db-fra.com

Comment définir l'en-tête de type de contenu WebClient?

Pour conéder à un service tiers, j'ai besoin de faire un message HTTPS. L'un des conditions requises consiste à envoyer un type de contenu personnalisé.

J'utilise WebClient, mais je ne trouve pas comment le définir. J'ai essayé de faire une nouvelle classe et de remplacer la méthode CreekeQuest, mais qui rend la demande de demande.

Y a-t-il un moyen de le faire sans avoir à réécrire la méthode Copyheadersto?

ÉDITER copyheaderto est une méthode que j'ai vue à l'aide de réflecteur .NET. Il est invoqué à Getwebrequest et définit tous les en-têtes de demande, y compris le type de contenu, des propriétés privées.

22
MaLKaV_eS

Eh bien, je viens d'oublier Request.ContentType biens. Si la méthode GetWebRequest est remplacée, réglage ContentType à la valeur souhaitée.

Néanmoins, la connexion à une tierce partie ne fonctionne pas. Allez comprendre.

1
MaLKaV_eS

Vous pouvez essayer d'ajouter à la collection en-tête .

myWebClient.Headers.Add("Content-Type","application/xxx");
43
Darin Dimitrov
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
13
V K

Je rencontre cela aussi. Et constaté que vous devez utiliser le client HTTP, sinon le navigateur HTTP bloquera le changement de type de contenu pour la raison de sécurité. Ce lien MSDN Expliquez cela.

WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
client.Headers["Content-Type"] = "application/json";
3
bob dawson