假设我们有一个带有搜索输入表单的网页,它通过 HTTP GET 向服务器提交数据。这意味着服务器通过查询字符串接收搜索数据。用户可以看到 URL,也可以自己初始化这个请求(通过 URL + 查询字符串)。
我们都知道。这是问题。
如果这个网页通过 HTTP POST 向服务器提交数据怎么办?用户如何自己初始化这个请求?
好吧,我知道如何捕获 HTTP POST(这就是网络嗅探器的用途),但是我如何在 C# 代码中自己模拟这个 HTTP POST 请求?
你可以看看WebClient类。它允许您将数据发布到任意 url:
using (var client = new WebClient())
{
var dataToPost = Encoding.Default.GetBytes("param1=value1¶m2=value2");
var result = client.UploadData("http://example.com", "POST", dataToPost);
// do something with the result
}
将生成以下请求:
POST / HTTP/1.1
Host: example.com
Content-Length: 27
Expect: 100-continue
Connection: Keep-Alive
param1=value1¶m2=value2