了解WebRequests

时间:2012-10-25 22:22:03

标签: c# .net performance webrequest

在我的代码(C#)中,我正在使用WebRequest:

var request = WebRequest.Create(url);

由于某种原因,这条线大约需要2-3秒才能运行。我找了一个解决方案,但找不到任何创建请求的方法。我尝试了不同的网址(http和https,谷歌等),但似乎没有任何帮助。有没有其他人经历过这样的行为?任何人都可以解释在创建请求期间究竟发生了什么?任何替代方案?

BTW - 我在64位Win 7(训练营)

编辑 - 使用秒表测量3.126秒以获取以下代码(无线):

var request = WebRequest.Create("http://www.google.com");

在同一个网络上,只有有线,需要0.01秒。

谢谢大家!

1 个答案:

答案 0 :(得分:1)

Some people发现代理检测可能需要花费相当长的时间。如果您知道没有代理,请尝试将WebRequest的代理属性设置为null。

var request = WebRequest.Create("http://www.google.com");
request.Proxy = null;

更新

我没有任何其他想法,但有些事情可能会尝试缩小问题范围。

  1. 通过在配置文件中添加以下代码来启用日志记录:

    <configuration>
      <system.diagnostics>
        <trace autoflush="true" />
        <switches>
          <add name="System.Net" value="Verbose"/>
        </switches>
      </system.diagnostics>
    </configuration>
    
  2. 查看ILSpy中的WebRequest.Create或类似工具的源代码,并尝试直接执行相同的操作。例如,您可以尝试创建new HttpWebRequest(...)而不是调用WebRequest.Create,看看是否有相同的行为。