是否可以在 WinRT 中同时发送两个以上的 HTTP 请求?我正在尝试从服务器加载多个 JSON 文档,而 HttpWebRequest 在第二次调用后无法响应。这是一个示例片段,说明了这一点:
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
const string url = "http://www.bom.gov.au/fwo/IDV60901/IDV60901.94868.json";
const int iterations = 3;
var tasks = new List<Task>();
var ticks = DateTime.Now.Ticks;
for (var i = 0; i < iterations; i++)
{
// Create unique URL by appending a generated number.
var uniqueUrl = string.Format("{0}?v={1}", url, (i + ticks));
// Create the request.
var request = WebRequest.CreateHttp(uniqueUrl);
// Create the async task and store it for later.
var task = request.GetResponseAsync();
tasks.Add(task);
}
// Await all tasks in collection.
await Task.WhenAll(tasks);
Debugger.Break(); // <----- This will never break when iterations > 2
}
将此代码放在空白的MainPage.xaml.cs 中并使用迭代值。如果将其设置为 2,则它可以工作。高于此,它将失败。
注意:: 测试时不要使用 Fiddler。Fiddler 做了一些有趣的事情,它允许所有这些连接通过。我不知道如何也不知道为什么。你可以自己测试一下。如果您在 fiddler 打开的情况下运行上面的代码,则成功。
注意:: 这不是真正的代码。我只是用这个例子来说明这个问题。