Comment simuler navigateur requête HTTP POST et le résultat de la capture en C #

StackOverflow https://stackoverflow.com/questions/2071321

  •  20-09-2019
  •  | 
  •  

Question

Disons que nous avons une page web avec une forme d'entrée de recherche, qui soumet les données au serveur via HTTP GET. Alors que ce serveur moyen de recevoir des données de recherche par le biais des chaînes de requête. L'utilisateur peut voir l'URL et peut également initialiser cette demande par lui-même (via les chaînes d'URL + requête).

Nous savons tous que. Voici la question.

Et si cette page Web présente des données au serveur via HTTP POST? Comment l'utilisateur peut initialiser cette demande par lui-même?

Eh bien, je sais comment capturer HTTP POST (c'est pourquoi renifleurs de réseau sont pour), mais comment puis-je simuler cette requête HTTP POST par moi-même dans un code C #?

Était-ce utile?

La solution

Vous pouvez jeter un oeil à la WebClient classe. Il vous permet de publier des données sur une URL arbitraire:

using (var client = new WebClient())
{
    var dataToPost = Encoding.Default.GetBytes("param1=value1&param2=value2");
    var result = client.UploadData("http://example.com", "POST", dataToPost);
    // do something with the result
}

générerons la requête suivante:

POST / HTTP/1.1
Host: example.com
Content-Length: 27
Expect: 100-continue
Connection: Keep-Alive

param1=value1&param2=value2
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top