我有这个简单的函数,它试图获取页面的Html做一些事情,如果有异常抛出试图多次
public static string TryGetPageHtml(string link, System.Net.WebProxy proxy = null)
{
System.Net.WebClient client = new System.Net.WebClient() { Encoding = Encoding.UTF8 };
if (proxy != null)
{
client.Proxy = proxy;
}
using (client)
{
try
{
return client.DownloadString(link);
}
catch (Exception ex)
{
return null;
}
}
}
我想调用这个函数的3倍,如果返回null三次返回null这意味着它zhcon失败,所以我想出了以下
一个办法做到这一点是
string HTML = null;
int triesRemaining = 3;
while (HTML == null && triesRemaining--!=0)
{
HTML = TryGetPageHtml(link,getrandomproxy());
}
if(HTML == null){//do the handlig}
和另一个我想出了是
HTML = TryGetPageHtml(link,getrandomproxy())??TryGetPageHtml(link,getrandomproxy())??TryGetPageHtml(link,getrandomproxy());
if(HTML == null){//do the handlig}
有没有更好的方法,并在那里建立在.net中的东西,可以使这更具可读性?
你究竟想要什么? –
@Rony我想要你的方式 – FPGA
不,但你为什么要搜索HTML?以及为什么你变得空? –