【问题标题】:connect to website using a free proxy server programmatically以编程方式使用免费代理服务器连接到网站
【发布时间】:2012-05-31 23:56:19
【问题描述】:

我需要使用代理服务器连接到网站。我可以手动执行此操作,例如我可以使用在线代理http://zend2.com,然后浏览到www.google.com。但这必须以编程方式完成。我知道我可以使用WebProxy 类,但我如何编写代码以便可以使用代理服务器?

任何人都可以给我一个代码 sn-p 作为示例或其他东西吗?

谢谢

【问题讨论】:

  • 你知道你可以使用WebProxy。这就是解决方案。你试过什么? “连接网站”是什么意思?使用浏览器?使用 c# 网络请求?
  • 是的,您可以在标题中看到我想以编程方式执行此操作(因此使用 C#)
  • 以编程方式是什么?我写的两个假设都可以通过编程方式完成
  • 如何以编程方式使用浏览器与网站建立连接?
  • 我可能不太清楚,但我想让你描述一下你所说的“连接”是什么意思。

标签: c# asp.net .net proxy


【解决方案1】:

了解zend2的工作原理,你可以像这样填充一个url:

http://zend2.com/bro.php?u=http%3A%2F%2Fwww.google.com&b=12&f=norefer

用于浏览谷歌。

我是 C#,像这样构建 url:

string targetUrl = "http://www.google.com";
string proxyUrlFormat = "http://zend2.com/bro.php?u={0}&b=12&f=norefer";
string actualUrl = string.Format(proxyUrlFormat, HttpUtility.UrlEncode(targetUrl));

// Do something with the proxy-ed url
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(actualUrl));
HttpWebResponse resp = req.GetResponse();

string content = null;
using(StreamReader sr = new StreamReader(resp.GetResponseStream()))
{
    content = sr.ReadToEnd();
}

Console.WriteLine(content);

【讨论】:

  • 感谢您的回复@Steve B。但是您提供的第一个链接仅填充了 zend2 中的文本框,但实际上并没有转到 google.com
  • 我怀疑该网站生成了一个 cookie。该网址适用于我的浏览器,但不适用于其他浏览器。您必须在页面上模拟一个 http 帖子,然后跟踪 cookie 以使其正常工作
  • 其实使用zend2并不是必须的。我也可以使用我刚刚找到的公共代理服务器hidemyass.com/proxy-list/search-225490。感谢您的努力。
  • 我确认,网站生成了一些 cookie。因此,不要像我一样使用 Get 请求,而是必须在 zend2.com 主页上创建一个 POST 请求,然后分析重定向 url 应该出现的结果
【解决方案2】:

您可以使用WebProxy Class

MSDN 代码

WebProxy proxyObject = new WebProxy("http://proxyserver:80/",true);
WebRequest req = WebRequest.Create("http://www.contoso.com");
req.Proxy = proxyObject;

你的情况

WebProxy proxyObject = new WebProxy("http://zend2.com",true);
WebRequest req = WebRequest.Create("www.google.com");
req.Proxy = proxyObject;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-11
相关资源
最近更新 更多