为什么我在RestSharp中的初始调用真的很慢? 但其他人之后非常快
我正在使用RESTSHARP调用WEB API,它们工作正常。 但是,对API的初始调用(无论是什么调用)有时最多可能需要10秒才能获得响应。 之后的其他所有电话都非常快。 有没有人知道这方面的方法?
我正在运行WPF 4.0应用程序
码:
var client = new RestClient(apiAddress); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request);
最有可能是导致此问题的网络设置。 我最近遇到了同样的问题,结果发现当使用HttpWebRequest
或RestSharp时,它正在尝试一些自动配置来寻找代理服务器。
在Internet Explorer中打开网络设置并禁用本地网络的自动配置。 在我的例子中,这也解决了RestSharp中第一个请求的延迟。
试图摆脱自动配置寻找代理服务器与此
System.Net.WebRequest.DefaultWebProxy = null;
我试过@skrause的答案,但这对我不起作用。 我花了很多时间,最后我解决了它。 这让我闷闷不乐。
public class SimpleWebProxy : IWebProxy { public ICredentials Credentials { get; set; } public Uri GetProxy(Uri destination) { return destination; } public bool IsBypassed(Uri host) { // if return true, service will be very slow. return false; } private static SimpleWebProxy defaultProxy = new SimpleWebProxy(); public static SimpleWebProxy Default { get { return defaultProxy; } } } var client = new RestClient(); client.Proxy = SimpleWebProxy.Default;
如果在connectiontrings之后在app.config中使用winforms等: