在C#应用程序中创建HTTP post请求和接收响应并解析响应

在C#应用程序中创建HTTP post请求和接收响应并解析响应,c#,http,cgi,http-post,C#,Http,Cgi,Http Post,我试图编写一个C程序,将http表单发布到CGI脚本并获得响应 响应是需要解析的网页,因为我只需要它的某一部分 有什么方法可以获取响应网页并用C#解析它吗?您可以使用该类: 您可以使用该类: 您可以使用WebClient组合来发送表单、检索响应以及解析此任务的结果。您可以使用WebClient组合来发送表单、检索响应以及解析此任务的结果。我的internet连接很慢,需要几分钟的时间秒提交表单并接收响应。如何在代码中处理此问题?代码引发3个错误和一个警告:警告1“System.Net”的usin

我试图编写一个C程序,将http表单发布到CGI脚本并获得响应

响应是需要解析的网页,因为我只需要它的某一部分

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

您可以使用该类:

您可以使用该类:


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

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

我的internet连接很慢,需要几分钟的时间秒提交表单并接收响应。如何在代码中处理此问题?代码引发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#应用程序。关于internet连接速度,我是否可以使用“UploadValuesCompleted”来处理它?@JeswinSimon,在WP7中,您只有异步版本的方法。因此,您应该订阅
UploadValuesCompleted
事件,然后使用
UploadValuesSync
触发请求。我的internet连接很慢,提交表单和接收响应需要几秒钟的时间。如何在代码中处理此问题?代码引发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#应用程序。关于internet连接速度,我是否可以使用“UploadValuesCompleted”来处理它?@JeswinSimon,在WP7中,您只有异步版本的方法。因此,您应该订阅
UploadValuesCompleted
事件,然后使用
UploadValuesAsync
触发请求。
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);
        }
    }
}