我需要一个Http请求,我可以在.Net中使用,这需要不到100毫秒.我能够在浏览器中实现这一点,所以我真的不明白为什么这在代码中是个问题.
我已经尝试过WinHTTP以及WebRequest.Create,它们都超过500毫秒,这对我的用例来说是不可接受的.
以下是我试图通过的简单测试的示例.(WinHttpFetcher是我写的一个简单的包装器,但是它确实是一个获取请求的最简单的例子,我不确定它是否值得粘贴.)
我正在使用LibCurlNet获得可接受的结果,但如果同时使用该类,我会收到访问冲突.此外,由于它不是托管代码,必须复制到bin目录,因此使用我的开源项目进行部署并不理想.
尝试另一个实现的任何想法?
[Test]
public void WinHttp_Should_Get_Html_Quickly()
{
var fetcher = new WinHttpFetcher();
var startTime = DateTime.Now;
var result = fetcher.Fetch(new Uri("http://localhost"));
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
[Test]
public void WebRequest_Should_Get_Html_Quickly()
{
var startTime = DateTime.Now;
var req = (HttpWebRequest) WebRequest.Create("http://localhost");
var response = req.GetResponse();
var endTime = DateTime.Now;
Assert.Less((endTime - startTime).TotalMilliseconds, 100);
}
Run Code Online (Sandbox Code Playgroud)