如何用C#模拟浏览器HTTP POST请求并捕获结果

2024-01-12

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

我们都知道。这是问题所在。

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

好吧,我知道如何捕获 HTTP POST(这就是网络嗅探器的用途),但是我如何在 C# 代码中自己模拟这个 HTTP POST 请求呢?


你可以看一下网络客户端 http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx班级。它允许您将数据发布到任意 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用C#模拟浏览器HTTP POST请求并捕获结果 的相关文章

随机推荐

  • swift 4:将对象与元组进行模式匹配(元组模式无法匹配非元组类型的值)

    我有一个带有几个字段的自定义结构 我想快速对其进行模式匹配switch语句 以便我可以通过将其中一个字段与正则表达式进行比较来自定义匹配 例如 鉴于此结构 struct MyStruct let header String let text
  • Haskell Parsec,将 oneOf 改编为 [String]

    我正在学习 48 小时内为自己编写一个方案 教程 symbol Parser Char symbol oneOf lt gt 这对于符号来说非常有用 但是如果我有一个关键字列表怎么办 即结构体 整数 oneOf 可以适应列表吗 这就是我想要
  • python side_effect - 方法的模拟行为

    在模拟中 我希望某个函数在测试中返回一个新值 我就是这样做的 Class MyClass my var None def foo self var1 return somevalue def bar self my var foo 1 Cl
  • JDBC 类型没有方言映射:Hibernate 4 和 SQL Server 2012 为 -9 [重复]

    这个问题在这里已经有答案了 我正在使用最新的 Hibernate 4 2 7 SP1 以及实体管理器和验证器等 我正在使用 Microsoft SQL Server 2012 我尝试使用的代码是 StringBuffer sb new St
  • 接收所请求网页的多个 loadFinished 信号

    我收到多个loadFinished当我尝试加载时发出信号QWebPage我不确定是什么导致了这个问题 还有其他几个问题似乎暗示了同一问题 但解决方案对我不起作用 QtWebPage loadFinished 多次调用 https stack
  • Java中可以使用组合而不是继承来实现多态吗?

    我正在学习Java 我知道什么是继承和组合 我见过很多使用继承的多态性的例子 所以我的第一个问题是 使用组合也可以做到同样的事情吗 如果是这样 可以举个什么例子吗 我的第二个问题是 多态性基本上是方法重载和 或方法重写吗 如果是 那为什么
  • 从 Excel 数据模型/Power Query 查询单个数据点(获取和转换数据)

    我正在使用最新版本的 Excel 2016 通过 O365 E3 许可证 并使用 Power Query Get Transform Data 我可以成功创建查询并将其加载到页面 我还成功创建了 Power Pivot 报告 我想从通过 P
  • COUNTIF 相当于 dplyr 总结

    我有一个数据框 列出了参加活动的学生总数 Stu 和每组学生人数 ID Sub ID Stu Sub int int int 1 101 80 NA 2 102 130 NA 3 103 10 NA 4 104 210 20 5 105 1
  • ajax 内容加载后点击不起作用

    如何使 live click function 在 ajax 调用后工作并使用 html data 返回内容 经过 4 个小时的搜索 我想我最好问一下 因为我一无所获 这部分正在工作 ajax type POST url loadAlbum
  • 在 IntelliJ IDEA 中按名称查找包

    我知道 Java 的名字package我想在项目中找到它 如何在 IntelliJ IDEA 中快速完成此操作 有键盘快捷键吗 Open Project View工具窗口 切换到Packages查看模式 单击齿轮图标 启用扁平包装选项 禁用
  • Django 1.6 网址不起作用

    我是 Django 新手 试图弄清楚 Django 中的 url 是如何工作的 我的应用程序urls py from django conf urls import url patterns import views urlpatterns
  • 将 MaterializeCSS 与 aurelia 结合使用

    我想问是否有一步一步的方法来使用或配置 Aurelia 的materializecss 我目前可以运行我的 Aurelia 应用程序 直到教程中我的 index html 看起来像这样
  • 如何将可选列表与上下文操作栏一起使用?

    我在这里阅读新的 Android 设计标准 http developer android com design patterns selection html http developer android com design patter
  • 如果批量使用GTR/LSS运算符

    我有一个越来越大的批处理文件 它使用GTR LSS运营商 问题是if语句只允许我输入某些值 在以下示例中 输入值 2 3 或 4 将返回 值太高 char intb set char points 30 set a limit char p
  • wsdl2java - 警告:无法初始化默认密钥管理器

    在生成 java WSDL 客户端时 我收到这些错误 你能帮我理解这些吗 C Users Administrator workspace apache cxf 3 0 2 bin gt wsdl2javahttps example com
  • 使用 TF-IDF 分数进行文本分类的 KNN

    我有一个 CSV 文件 corpus csv 其中包含语料库中以下格式的分级摘要 文本 Institute Score Abstract UoM 3 0 Hello this is abstract one UoM 3 2 Hello th
  • Android studio 防止粘贴时代码重新格式化[重复]

    这个问题在这里已经有答案了 我已经开始使用 Android Studio 取代 Eclipse 但我无法习惯的一件事是 Studio 如何自动 在某些情况下 重新格式化当前文件中的部分甚至全部代码 其中一种情况是将文本粘贴到我的文件中 当我
  • 正则表达式:+$ VS *$ VS 无

    在正则表达式中 有什么区别 a zA Z and a zA Z 我也可以根本不包括它吗 a zA Z or a zA Z 我在网上查了一下 上面写着 匹配前面的字符一次或多次并且 匹配前面的字符零次或一次 但我不知道这在这种情况下意味着什么
  • 删除按钮处于活动状态(单击)时的阴影

    我有这个 CSS 用于按钮动画和其他 btnliner background url images btnbg png no repeat center 105px Fallback display block text align cen
  • 如何用C#模拟浏览器HTTP POST请求并捕获结果

    假设我们有一个带有搜索输入表单的网页 它通过 HTTP GET 将数据提交到服务器 这意味着服务器通过查询字符串接收搜索数据 用户可以看到 URL 也可以自己初始化此请求 通过 URL 查询字符串 我们都知道 这是问题所在 如果这个网页通过