C# 在For循环中处理此HttpWebRequest的最佳方法?

C# 在For循环中处理此HttpWebRequest的最佳方法?,c#,httpwebrequest,webrequest,C#,Httpwebrequest,Webrequest,问题背景: 我正在给亚马逊的产品广告API打电话。这将一次返回X个分页结果,其中XML中的一个节点表示有多少页可用,即10页。然后指定一个页码,API将响应该给定页面的结果 问题: 我想将每个页面的所有结果添加到列表中,然后发送到MVC视图。目前,我通过一个For循环来实现这一点,该循环将上限指定为最大循环数,例如,如果有10页可用,我将循环第1、2、3、4页……等等,直到10页 下面的代码显示了当前如何发出请求。这样行吗?它可以工作,但我在调试时多次看到StackOverflow异常 f

问题背景:

我正在给亚马逊的产品广告API打电话。这将一次返回X个分页结果,其中XML中的一个节点表示有多少页可用,即10页。然后指定一个页码,API将响应该给定页面的结果

问题:

我想将每个页面的所有结果添加到列表中,然后发送到MVC视图。目前,我通过一个For循环来实现这一点,该循环将上限指定为最大循环数,例如,如果有10页可用,我将循环第1、2、3、4页……等等,直到10页

下面的代码显示了当前如何发出请求。这样行吗?它可以工作,但我在调试时多次看到
StackOverflow
异常

   for (int i = 1; i <= 10; i++)
          {
                string requestUrl = "http://amazonApi.com/page"+i;

                WebRequest amazonRequest = HttpWebRequest.Create(requestUrl);

             try
             {
                WebResponse response = amazonRequest .GetResponse();

                XmlDocument doc = new XmlDocument();

                doc.Load(response.GetResponseStream());

                XmlDocument xmlDoc = doc;

                //Add Xml Document to List.....
                AddToList(xmlDoc);
            }
            catch (Exception e)
            {
                System.Console.WriteLine("Caught Exception: " + e.Message);
                System.Console.WriteLine("Stack Trace: " + e.StackTrace);
            }
         }

for(int i=1;我只是简单地说,for循环只会运行9次。将条件更改为iYou甚至可以将for循环更改为并行for;也就是说,如果您对项目的显示顺序不太在意的话。它会产生一些线程,并大大减少执行(可能是3到4倍或更多,具体取决于处理器数量)简单地说,for循环只会运行9次。将条件更改为iYou甚至可以将for循环更改为并行for;如果您不担心项目的显示顺序,它将生成几个线程,并大大减少执行(可能会增加3到4倍或更多,具体取决于处理器数量)