行。我觉得我的头衔很糟糕。我不知道那么多委托,只是说它们就像C中的函数指针一样...... 我有一些代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace lol
{
class FetchHttpSite
{
public static string Download(string url, string ip)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.AllowAutoRedirect = true;
req.UserAgent = UserAgent.Random();
req.ServicePoint.BindIPEndPointDelegate = delegate(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount) {
return new IPEndPoint(IPAddress.Parse(ip), 0);
};
HttpWebResponse webResponse;
string content;
webResponse = (HttpWebResponse)req.GetResponse();
using (StreamReader stream = new StreamReader(webResponse.GetResponseStream()))
content = stream.ReadToEnd();
return content;
}
}
}
我想获取具有不同IP的网站。但是当我尝试这个时,我意识到这个代表就像......静态xD。它只需要我给他的第一个IP。因此,如果我给他一个新的IP,他仍将使用他得到的第一个。我在Stackoverflow btw上找到了BindIPEndPointDelegate代码。
所以我希望该委托总是采用该字符串ip。比如,一直在更新自己。这可能吗。我该怎么做呢?可能吗?我可以用另一种方式吗?
谢谢!
编辑:
我想使用该IP获取网站我提供方法。所以当网络服务器得到我的请求时,我的地址是字符串ip参数。 :)
该方法有效!你看我以前尝试过:返回新的IPEndPoint(IPAddress.Parse(ip),0);,例如Console.Writeline(“你好!”);然后它会运行一次!即使你问我100x。它只需要从第一个IP使用该方法。谢谢!
编辑2:
粘贴整个代码。