Comment puis-je Créer une Requête HTTP Manuellement .Net?
J'aimerais créer mon propre requêtes HTTP. La classe WebClient est très cool, mais il crée les requêtes HTTP automatiquement. Je pense que je dois créer une connexion réseau pour le serveur web et de transmettre mes données sur ce cours d'eau, mais je suis familier avec les classes de la bibliothèque qui serait en charge de ce genre de chose.
(Contexte, je suis en train de travailler sur un code pour un site web de la programmation de la classe que je suis enseignant. Je veux que mes élèves à comprendre les bases de ce qui se passe à l'intérieur de la "boîte noire" de l'HTTP.)
Vous devez vous connecter pour publier un commentaire.
Pour vraiment comprendre le fonctionnement interne du protocole HTTP, vous pouvez utiliser TcpClient classe:
Une autre possibilité est de activer le traçage en mettant la ligne suivante dans votre
app.config
et il suffit d'utiliser WebClient pour effectuer une requête HTTP:Ensuite, vous pouvez effectuer un appel HTTP:
Et, enfin, analyser le trafic réseau généré
network.log
fichier.WebClient
permettra également de suivre les redirections HTTP.Utiliser le WebRequest ou WebResponse classes, tel que requis.
Si vous avez besoin de descendre plus bas niveau que ceux-ci fournissent, regardez l'autre Système.Net.Sockets.*Client classes telles que TcpClient.
Découvrez
System.Net.Les Sockets.TcpClient
si vous souhaitez écrire votre propre faible niveau client. Pour HTTP GET et POST, vous pouvez utiliser leHttpWebRequest
etHttpWebResponse
classes bien.Si vous êtes vraiment masochiste, vous pourrait aller plus bas que le
TcpClient
et de mettre en œuvre votre propreSocket
, voir la Classe Socket.Dans ma réponse à ce post DONC SharePoint 2007, comment faire pour vérifier si un dossier existe dans une bibliothèque de documents j'ai compris les bases de la création de HttpWebRequest et de lire la réponse.
Edit: ajout d'un exemple de code dans le post ci-dessus
using
blocs pour le StreamReader/Écrivain, et pour la réponse.using
blocs, juste à la sortie de la paranoïa que de disposer du lecteur/enregistreur peut pas jeter le flux sous-jacent.Utilisation WFetch pour la démonstration.
Comme pour la programmation, HttpWebRequest vous permet de contrôler un peu au sujet de la demande de nouveau si c'est pour une démonstration que j'avais utiliser Wireshark de renifler ce qu'il se passe sur le fil lorsque vous effectuez diverses tâches dans le HttpWebRequest