サーバーエラー時に再試行できるように
| @@ -293,11 +293,21 @@ | ||
| 293 | 293 | param.Add("cursor", cursor.ToString()); |
| 294 | 294 | } |
| 295 | 295 | |
| 296 | - res = twitter.GetWebResponse(uri, false, param); | |
| 297 | - using (var r = res.GetResponseStream()) | |
| 298 | - using (var rr = XmlReader.Create(r)) | |
| 296 | + var isProced = false; | |
| 297 | + while (!isProced) | |
| 299 | 298 | { |
| 300 | - doc = XDocument.Load(rr); | |
| 299 | + try | |
| 300 | + { | |
| 301 | + doc = DonwLoadXmlProc(twitter, uri, false, param); | |
| 302 | + isProced = true; | |
| 303 | + } | |
| 304 | + catch (Exception exx) | |
| 305 | + { | |
| 306 | + if (MessageBox.Show(exx.Message, "Web Error", MessageBoxButtons.RetryCancel) == System.Windows.Forms.DialogResult.Cancel) | |
| 307 | + { | |
| 308 | + throw exx; | |
| 309 | + } | |
| 310 | + } | |
| 301 | 311 | } |
| 302 | 312 | |
| 303 | 313 | foreach (var item2 in doc.Element("users_list").Element("users").Elements("user")) |
| @@ -315,6 +325,16 @@ | ||
| 315 | 325 | backgroundWorker1.ReportProgress(100); |
| 316 | 326 | } |
| 317 | 327 | |
| 328 | + private XDocument DonwLoadXmlProc(TwitterLib twitter, string uri, bool p, Dictionary<string, string> param) | |
| 329 | + { | |
| 330 | + var res = twitter.GetWebResponse(uri, false, param); | |
| 331 | + using (var r = res.GetResponseStream()) | |
| 332 | + using (var rr = XmlReader.Create(r)) | |
| 333 | + { | |
| 334 | + return XDocument.Load(rr); | |
| 335 | + } | |
| 336 | + } | |
| 337 | + | |
| 318 | 338 | private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) |
| 319 | 339 | { |
| 320 | 340 | if (e.ProgressPercentage == 0) |