【问题标题】:Create HTTP post request and receive response in C# application and parsing the response在 C# 应用程序中创建 HTTP 发布请求并接收响应并解析响应
【发布时间】:2011-12-12 17:16:39
【问题描述】:

我正在尝试编写一个 C# 程序,它将 http 表单发布到 CGI 脚本并获得响应。

响应是需要解析的网页,因为我只需要其中的一部分。

有什么方法可以获取响应网页并在 C# 中解析它?

【问题讨论】:

    标签: c# http cgi http-post


    【解决方案1】:

    您可以结合使用WebClient 发送表单和检索响应,使用HtmlAgilityPack 来解析此任务的结果。

    【讨论】:

      【解决方案2】:

      您可以使用WebClient 类:

      using System.Collections.Specialized;
      using System.Net;
      
      class Program
      {
          static void Main()
          {
              using (var client = new WebClient())
              {
                  var values = new NameValueCollection();
                  values["foo"] = "bar";
                  values["bar"] = "baz";
                  var url = "http://foo.bar/baz.cgi";
                  byte[] result = client.UploadValues(url, values);
      
                  // TODO: do something with the result
                  // for example if it represents text you could
                  // convert this byte array into a string using the proper
                  // encoding: string sResult = Encoding.UTF8.GetString(result);
              }
          }
      }
      

      【讨论】:

      • 我的网络连接很慢,提交表单并收到回复需要几秒钟的时间。如何在代码中处理这个问题?
      • 代码抛出 3 个错误和一个警告:警告 1 'System.Net' 的 using 指令以前出现在此命名空间中 错误 2 'System.Net.WebClient':在 using 语句中使用的类型必须可以隐式转换为“System.IDisposable”错误 4“System.Net.WebClient”不包含“UploadValues”的定义,并且找不到接受“System.Net.WebClient”类型的第一个参数的扩展方法“UploadValues” (您是否缺少 using 指令或程序集引用?)
      • @JeswinSimon,您使用的是哪个版本的 .NET?就您的 Internet 连接速度而言,您可以从代码中做的不多:-) 您必须联系您的 ISP 提供商。
      • .net 4. Windows phone 7 C# 应用程序。关于互联网连接速度,我是否可以使用“UploadValuesCompleted”处理它?
      • @JeswinSimon,在 WP7 中,您只有异步版本的方法。所以你应该订阅UploadValuesCompleted事件,然后使用UploadValuesAsync触发请求。
      猜你喜欢
      • 1970-01-01
      • 2011-03-03
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多