为什么我在RestSharp中的初始调用真的很慢?但其他人之后非常快

Nei*_*son 11 .net c# wpf 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);
Run Code Online (Sandbox Code Playgroud)

skr*_*use 13

最有可能是导致此问题的网络设置.我最近遇到了同样的问题,结果发现在使用HttpWebRequest或RestSharp时,它正在尝试一些自动配置来寻找代理服务器.

在Internet Explorer中打开网络设置并禁用本地网络的自动配置.在我的例子中,这也解决了RestSharp中第一个请求的延迟.


小智 5

我曾尝试过@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;
Run Code Online (Sandbox Code Playgroud)