2010-10-11 5 views
0

Je dois définir le port d'une demande HttpRequest. C'est le port de la demande.Définir un port demandeur pour HTTP WebRequest

scénario HTTP normal:

Demande: 127.0.0.1:6745 -> www.stackoverflow.com Réponse: 1227.0.0.1:6745 < - www.stackoverflow.com

Demande: 127,0 .0.1: 8096 -> www.stackoverflow.com Réponse: 1227.0.0.1:8096 < - www.stackoverflow.com

Mon scénario:

Demande: 127.0.0.1:6745 -> www .empiler overflow.com Réponse: 1227.0.0.1:6745 < - www.stackoverflow.com

Demande: 127.0.0.1:6745 -> www.stackoverflow.com Réponse: 1227.0.0.1:6745 < - www .stackoverflow.com

La demande doit toujours provenir d'un port défini. Est-ce même possible dans le protocole HTTP? Si oui, comment utiliser la classe WebRequest dans le framework .NEt? Ou dois-je utiliser des douilles manuelles?

+1

TCP/IP n'a jamais fonctionné comme vous le souhaitez. Ce serait stupide si c'était le cas. – leppie

+0

Ce n'était pas mon idée, un tiers veut notre adresse IP et le numéro de port afin de nous permettre de consommer leur service XML XML. – IceHeat

Répondre

1

Que voulez-vous dire en demandant le port? Si c'est le port temporaire assigné par le système d'exploitation, je ne pense pas que vous ayez le contrôle sur WebRequest. À mon humble avis, il serait préférable de laisser cette gestion au système d'exploitation ou vous pourriez rencontrer des conflits avec d'autres applications.

+0

Ok. Que diriez-vous de savoir quel port a été utilisé par WebRequest? Y at-il un moyen de déterminer cela après la demande est faite? – AlanKley

0

Passez à WebClient au lieu de HttpWebRequest car il devrait conserver la connexion active pendant un certain temps. Notez que HTTP n'a pas été créé pour garder les connexions ouvertes.

La connexion sera toujours fermée après une période d'inactivité.