【问题标题】:Web Client Upload ValuesWeb 客户端上传值
【发布时间】:2010-12-20 20:58:07
【问题描述】:

我想制作一个桌面应用程序,在文本框中输入一个值并执行按钮操作,例如设计一个在 google.com 的谷歌搜索框中输入值并执行操作的应用程序,就像任何人按下搜索按钮时一样我写了一个代码但它抛出异常远程服务器返回错误:(405)方法不允许。

WebClient wc = new WebClient();
string uri = "http://google.com";

NameValueCollection nvc = new NameValueCollection();

nvc.Add("search", "afnan");            

byte[] response = wc.UploadValues(uri, nvc);
textBox1.Text=Encoding.ASCII.GetString(response);

【问题讨论】:

    标签: c# webclient web-crawler


    【解决方案1】:

    UploadValues 正在尝试执行POST(至少默认情况下;允许使用其他一些动词,但它们本质上仍将其视为主体有效负载)。 听起来就像您只想要一个 GET 查询,如 http://www.google.com/search?q=afnan - 所以只需 url-encode "afnan"。但是请注意,您应该始终观察目标网站的Terms and Conditions - 特别是第 5 节:

    您明确同意不通过任何自动化方式(包括使用脚本或网络爬虫)访问(或试图访问)任何服务

    如果你这样做,预计会被列入黑名单。

    【讨论】:

    • 我很幸运能得到版主的回答,谢谢先生。让我谷歌一下,我会在做完一些家庭作业后联系你
    • 对于我正在工作的网站,他们支持它,我的意思是他们有 joomla woerpress 等插件,它们允许这些操作
    • 我已经在 vs 中启​​动了一个 vs ASP.Net 网站,这是默认模板,并且有一个登录页面。我修改了上面的代码以登录到该页面,但我得到的响应是简单的数据因为它是使用 webclient DownloadData 下载的
    猜你喜欢
    • 2020-04-16
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-04
    • 2012-02-03
    • 2023-04-09
    • 1970-01-01
    • 2017-07-05
    相关资源
    最近更新 更多