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.
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.
Vous pouvez essayer d'ajouter à la collection en-tête .
myWebClient.Headers.Add("Content-Type","application/xxx");
webclient.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
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";