默认的getUrlRespHtml只允许一次,即当出错时,就返回空字符串了,就不再继续了。
此处的getUrlRespHtml_multiTry,是带多次尝试的版本。
其完整代码是:
public string getUrlRespHtml_multiTry (string url, Dictionary<string, string> headerDict = defHeaderDict, string charset = defCharset, Dictionary<string, string> postDict = defPostDict, int timeout = defTimeout, string postDataStr = defPostDataStr, int readWriteTimeout = defReadWriteTimeout, int maxTryNum = defMaxTryNum, int retryFailSleepTime = defRetryFailSleepTime) { string respHtml = ""; for (int tryIdx = 0; tryIdx < maxTryNum; tryIdx++) { respHtml = getUrlRespHtml(url, headerDict, charset, postDict, timeout, postDataStr, readWriteTimeout); if (!string.IsNullOrEmpty(respHtml)) { break; } else { //something wrong //maybe network is not stable //so wait some time, then re-do it System.Threading.Thread.Sleep(retryFailSleepTime); } } return respHtml; }
例 9.8. getUrlRespHtml_multiTry 的使用范例
//respHtml = crl.getUrlRespHtml(viewHtmlUrl); respHtml = crl.getUrlRespHtml_multiTry(viewHtmlUrl);