我正在使用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等:
<system.net>
<defaultProxy enabled="true">
<proxy usesystemdefault="True"/>
</defaultProxy>
</system.net>