13

我正在使用 RESTSHARP 调用 WEB API,它们工作正常。但是,对 API 的初始调用(不管它是什么调用)有时可能需要长达 10 秒才能获得响应。之后的所有其他呼叫都非常快。有谁知道解决这个问题的方法?

我正在运行 WPF 4.0 应用程序

代码:

var client = new RestClient(apiAddress);
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
4

4 回答 4

13

很可能是网络设置导致了这个问题。我最近遇到了同样的问题,事实证明,在使用HttpWebRequest或 RestSharp 时,它正在尝试一些自动配置来寻找代理服务器。

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

于 2012-09-17T14:23:11.080 回答
4

我曾尝试过@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;
于 2016-12-08T14:08:22.680 回答
2

试图摆脱自动配置来寻找代理服务器

System.Net.WebRequest.DefaultWebProxy = null;
于 2016-06-03T13:49:34.370 回答
0

如果您在连接字符串之后在 app.config 中使用 winforms 等:

<system.net>
  <defaultProxy enabled="true">
    <proxy usesystemdefault="True"/>
  </defaultProxy>
</system.net>
于 2014-01-22T11:21:47.377 回答