gpt4 book ai didi

c# - C# 中的多个 HTTP 请求

转载 作者:太空狗 更新时间:2023-10-29 17:57:45 27 4
gpt4 key购买 nike

我需要向不同的服务器并行发送大约 200 个 HTTP 请求并获得响应。我在 C# 中使用 HttpWebRequest 类。但是当并行处理请求时,我没有看到很好的时间增强。例如,如果一个请求需要 3 秒才能得到响应,2 个并行请求 - 6 秒,3 个请求 - 8 秒,4 个请求 - 11 秒......这不好,我希望应该有最好的时间,200 个请求大约 10 秒。看起来只有 2-3 个请求并行执行,但超时在 WebRequest 对象创建后立即开始。我尝试设置 DefaultConnectionLimitMaxServicePoints 值,但 id 没有帮助。据我了解,这些参数用于并行请求一个站点的数量。我需要对不同站点的请求。

我用来测试的代码示例:

ArrayList a = new ArrayList(150);

for (i = 50; i < 250; i++ )
{
a.Add("http://207.242.7." + i.ToString() + "/");
}

for (i = 0; i < a.Count; i++)
{
Thread t = new Thread(new ParameterizedThreadStart(performRequest));
t.Start(a[i]);
}


static void performRequest(object ip)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create((stirng)ip);

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
}

谁遇到过这样的问题?感谢您提出任何建议。

最佳答案

与其启动自己的线程,不如尝试使用 HttpWebRequest 的异步方法,例如 HttpWebRequest.BeginGetResponseHttpWebRequest.BeginGetRequestStream .

关于c# - C# 中的多个 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2972988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com