1
我正在写一个函数来对我的计算机本地托管的web服务执行查询。它工作正常,但GetResponse方法花费的时间比我期望的要多。更具体地说,当我在浏览器上执行请求时,大约需要10毫秒,而GetResponse方法与300毫秒相差甚远。WebRequest.GetResponse()花费太多时间
我在代码上做错了什么?我可以改进吗?
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
如果itsme86的评论没有帮助。这可能是由自动代理检测造成的。尝试设置request.Proxy = null。请参阅http://stackoverflow.com/a/3603413/442078 – Will
itsme86,你是对的。当我清理缓存时,请求大约需要300毫秒,就像我的应用程序一样。感谢您的帮助。 – NicoRiff