C#下载具有给定参数的网页内容[重复]

Posted

技术标签:

【中文标题】C#下载具有给定参数的网页内容[重复]【英文标题】:C# Download webpage content with given parameters [duplicate] 【发布时间】:2019-12-22 22:55:47 【问题描述】:

我有问题。我正在尝试获取我网页的内容,所以我找到了这段代码:

WebClient client = new WebClient();
string downloadString = client.DownloadString("mysite.org/page.php");

但是我的php页面中有几个$_POST变量,如何将它们添加到页面的下载中?

【问题讨论】:

将要发送的数据转换成字节数组,通过请求流写入。所以不要使用webClient,而是使用webRequest 您可能需要查看UploadString 方法的文档。 【参考方案1】:

你可以试试这样的。不要使用 webClient,而是使用 WebRequest 和 WebResponse。

private string PostToFormWithParameters(string query)

    try
    
        string url = "protocol://mysite.org/page.php/";
        string data = "?pageNumber=" + query; // data you want to send to the form.
        HttpWebRequest WebRequest = (HttpWebRequest)WebRequest.Create(url);
        WebRequest.ContentType = "application/x-www-form-urlencoded";
        byte[] buf = Encoding.ASCII.GetBytes(data);
        WebRequest.ContentLength = buf.Length;
        WebRequest.Method = "POST";    

        using (Stream PostData = WebRequest.GetRequestStream())
        
            PostData.Write(buf, 0, buf.Length);
            HttpWebResponse WebResponse = (HttpWebResponse)WebRequest.GetResponse();
            using (Stream stream = WebResponse.GetResponseStream())
                using (StreamReader strReader = new StreamReader(stream))
                    return strReader.ReadLine(); // or ReadToEnd() -- https://docs.microsoft.com/en-us/dotnet/api/system.io.streamreader?view=netframework-4.8                            
            WebResponse.Close();
       

    
    catch (Exception e)
    
        /* throw appropriate exception here */
        throw new Exception();
    
    return "";


...

var response = PostToFormWithParameters("5");

【讨论】:

我认为你最后放错了回报?它应该在捕获中吗? 我在这一行得到 2 个错误:HttpWebRequest WebRequest = (HttpWebRequest)WebRequest.Create(url); 第一个是:“use of unassigned local variable: 'WebRequest”....第二个是:“Member 'WebRequest.Create(string)' cannot be accessed with an instance reference; qualify it with a type name instead 你必须在你的文件中导入 HttpWebRequest 和 HttpWebResponse。 我已经导入了:using System.Net; ?

以上是关于C#下载具有给定参数的网页内容[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C# webBrowser1 获取提交后网页的内容

C# 获取网页内容

如何爬取URL不变的网站内容

jquery 怎么得到别的网页的内容

网页搜集系统

C# 抓取网页的img src带参数的图片链接,并下载