Comment définir un “Hôte” tête dans HttpWebRequest?
Comment puis-je configurer un Hôte personnalisé en-tête dans HttpWebRequest? Je sais que, normalement, cette classe ne vous permettra pas de le faire, mais est-il de toute façon à utiliser la réflexion ou quelque chose comme ça sans réellement besoin de moi pour envoyer le paquet entier avec TCPClient?
Exactement ce que vous voulez changer dans l'en-tête? Parce que la plupart des paramètres d'en-tête peut être indirectement modifié par les propriétés
Pourquoi avez-vous besoin pour définir "l'Hôte" d'en-tête par vous-même. Si vous en faites la demande à
Hôte et d'autres réservés les paramètres ne peuvent pas.
Pourquoi avez-vous besoin pour définir "l'Hôte" d'en-tête par vous-même. Si vous en faites la demande à
www.google.com
, il devient tout simplement en-tête d'hôte.Hôte et d'autres réservés les paramètres ne peuvent pas.
OriginalL'auteur dr. evil | 2009-09-20
Vous devez vous connecter pour publier un commentaire.
Il y a un rond-point de la façon de le faire, comme décrit ici:
http://blogs.msdn.com/feroze_daud/archive/2005/03/31/404328.aspx
Cependant, la prochaine version du framework (.NET Framework 4.0) sera plus facile.
http://blogs.msdn.com/ncl/archive/2009/07/20/new-ncl-features-in-net-4-0-beta-2.aspx
Espère que cette aide.
La honte je ne l'utilise pas .NET 4 qui semble bon.
OriginalL'auteur feroze
Vous pouvez utiliser ce hack, conçu pour résoudre ce problème .Net 3.5 .
OriginalL'auteur user2225191
Necromancing.
Pour ceux qui sont encore sur .NET 2.0
Il est en fait assez facile, si vous savez comment.
Problème est, vous ne pouvez pas définir l'en-tête d'hôte, parce que le cadre ne vous laisseront pas de modifier la valeur au moment de l'exécution. (.net framework 4.0+ vous permettra de remplacer l'hôte dans une httpwebrequest).
Prochaine tentative sera la définition de l'en-tête avec la réflexion, de la contourner, ce qui vous permettra de changer la valeur d'en-tête. Mais au moment de l'exécution, il va remplacer cette valeur avec la partie hôte de l'url, ce qui signifie que la réflexion vous apportera rien.
Si le dns-nom n'existe pas, ce qui est franchement le seul cas dans lequel vous souhaitez le faire, en premier lieu, vous ne pouvez pas le définir, parce que .NET ne peut pas le résoudre, et vous ne pouvez pas remplacer l' .NET de résolution DNS.
Mais ce que vous pouvez faire est de fixer un webproxy avec la même IP que le serveur de destination.
Donc, si votre serveur IP est 28.14.88.71:
et voila, maintenant
et vous obtenez la bonne page, si 28.14.88.71 est un serveur virtuel à base de nom de l'hébergement (basé sur http-en-tête d'hôte).
OriginalL'auteur Stefan Steiger
vous pouvez utiliser le proxy, voir ma réponse à l':
Demande de Page Web en c# usurpation de l'Hôte
OriginalL'auteur thedrs
WebClient permet.
Je ne pourrais pas vous dire pourquoi. La documentation indique clairement que l'Hôte est un système d'en-tête.
Elle fonctionne. Je suis de l'utiliser en production
Pas de travaux. ArgumentException: Cet en-tête doit être modifiée qu'avec l'idéal de la propriété.
Il littéralement. Comme je l'ai dit, l'exécution de la production. Système.Net.WebClient. La cible 3.5
OriginalL'auteur Patrick