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