【问题标题】:WebRequest.GetResponse() taking too much timeWebRequest.GetResponse() 花费太多时间
【发布时间】:2013-08-26 23:21:05
【问题描述】:

我正在编写一个函数来对本地托管在我的计算机上的网络服务进行查询。它工作正常,但 GetResponse 方法花费的时间比我预期的要多。更具体地说,当我在浏览器上发出请求时,大约需要 10 毫秒,而 GetResponse 方法的耗时远非 300 毫秒。

我在代码上做错了吗?我可以改进吗?

    public static string CargarListaRutas()
    {
        WebRequest request = HttpWebRequest.Create("http://localhost:8080/services/rest/184108301/listaRutas/");
        request.Timeout = 2000;
        WebResponse response;
        string responseFromServer;
        try
        {
            using (response = request.GetResponse())
            {
                Stream dataStream = response.GetResponseStream();
                StreamReader reader = new StreamReader(dataStream);
                responseFromServer = reader.ReadToEnd();
            }
        }
        catch
        {
            responseFromServer = String.Empty;
        }

        return responseFromServer;
    }

【问题讨论】:

  • 你确定不是因为浏览器使用的是缓存版本?您可以尝试 CTRL + F5 强制浏览器重新加载页面而不使用缓存来测试时间。
  • 如果 itsme86 的评论没有帮助。这可能是由自动代理检测引起的。尝试设置 request.Proxy = null。见stackoverflow.com/a/3603413/442078
  • itsme86,你是对的。当我清理缓存时,请求大约需要 300 毫秒,就像我的应用程序一样。感谢您的帮助。
  • 如果你想回答,我会接受的。谢谢!

标签: c# .net web-services


【解决方案1】:

您的浏览器速度可能快得多,因为它使用了缓存。试试CTRL+F5强制浏览器重新加载页面,不使用缓存来测试计时。

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多