代码之家  ›  专栏  ›  技术社区  ›  Peter Stegnar

如何在C中模拟浏览器HTTP POST请求和捕获结果#

  •  17
  • Peter Stegnar  · 技术社区  · 16 年前

    假设我们有一个带有搜索输入表单的网页,它通过HTTPGET向服务器提交数据。这意味着服务器通过查询字符串接收搜索数据。用户可以看到URL,也可以自己初始化该请求(通过URL+查询字符串)。

    我们都知道。这是个问题。

    如果此网页通过HTTP Post向服务器提交数据怎么办?用户如何自己初始化这个请求?

    我知道如何捕获HTTP Post(这就是为什么网络嗅探器适用的原因),但是我如何在C代码中自己模拟这个HTTP Post请求?

    1 回复  |  直到 7 年前
        1
  •  24
  •   Darin Dimitrov    16 年前

    你可以看看 WebClient 班级。它允许您将数据发布到任意URL:

    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
    }
    

    将生成以下请求:

    POST / HTTP/1.1
    Host: example.com
    Content-Length: 27
    Expect: 100-continue
    Connection: Keep-Alive
    
    param1=value1&param2=value2