Webclient에 문제가 있습니다.WebClient가 매우 느립니다.
매우 느립니다. 한 웹 사이트에서 downloadString을 다운로드하는 데 3-5 초 정도 걸립니다. 네트워크에 문제가 없습니다.
이것은 내 Modifed 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;
}
}
}
UPDATE : 은 와이어 샤크에서 나는 하나의 DownladString 보내고 몇 수천 패킷을 수신하는 것을 보았다.
웹 클라이언트 특히 느린 아닌, 문제는 다른 곳에서해야합니다 ... 아마 당신이 다운로드하는 웹 사이트가 느린가요? –
WireShark와 같은 트래픽 로거를 사용하여 지연이 실제로 네트워크/서버 속도 저하로 인해 발생하는 단일 요청 및 응답 프레임 사이인지 확인하거나 클라이언트 코드가 잘못되어 너무 많은 요청 또는 일부 로직을 전송하기 때문에 발생하는지 확인해야합니다 오류. –
또한 루프를 여러 번 실행하여 프로세스를 '워밍업'합니다 (예 : 어셈블리가로드되지 않도록). –