gpt4 book ai didi

c# - WebClient 很慢

转载 作者:可可西里 更新时间:2023-11-01 08:33:41 35 4
gpt4 key购买 nike

我的 Webclient 有问题。

速度很慢。从一个网站下载String大约需要3-5秒。我没有任何网络问题。

这是我修改后的 WebClient。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;

namespace StatusChecker
{
class WebClientEx: WebClient
{
public CookieContainer CookieContainer { get; private set; }

public WebClientEx()
{
CookieContainer = new CookieContainer();

ServicePointManager.Expect100Continue = false;
Encoding = System.Text.Encoding.UTF8;

WebRequest.DefaultWebProxy = null;
Proxy = null;
}

public void ClearCookies()
{
CookieContainer = new CookieContainer();
}

protected override WebRequest GetWebRequest(Uri address)
{

var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = CookieContainer;
}
return request;
}
}
}

更新:在 wireshark 中,我看到单个 DownladString 正在发送和接收数千个数据包。

最佳答案

这里可能有两个问题(我之前在自己的程序中也注意到了):

  • 第一个请求花费的时间异常长:发生这种情况是因为 WebRequest 默认情况下会在第一次启动时检测并加载代理设置,这可能需要相当长的时间。要阻止这种情况,只需将代理属性 (WebRequest.Proxy) 设置为 null 即可绕过检查(前提是您可以直接访问互联网)
  • 一次不能下载超过 2 个项目:默认情况下,您只能同时打开 2 个 HTTP 连接。要更改此设置,请将 ServicePointManager.DefaultConnectionLimit 设置为更大的值。我通常将其设置为 int.MaxValue(只要确保您不会向主机发送 1,000,000 个连接的垃圾邮件)。

关于c# - WebClient 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6988981/

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