Подтвердить что ты не робот

Почему мой первый вызов в RestSharp очень медленный? но другие после очень быстры

Я звоню в WEB API, используя RESTSHARP, и они работают нормально. Тем не менее, первичный вызов API (независимо от того, какой вызов он может получить) может занять до 10 секунд, чтобы получить ответ. Каждый другой звонок после этого действительно быстрый. Кто-нибудь знает об этом?

Я запускаю приложение WPF 4.0

код:

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

IRestResponse response = client.Execute(request);
4b9b3361

Ответ 1

Это, скорее всего, сетевые настройки, вызывающие эту проблему. Недавно у меня была такая же проблема, и выяснилось, что при использовании HttpWebRequest или RestSharp она пыталась настроить некоторую автоматическую конфигурацию прокси-сервера.

Откройте сетевые настройки в Internet Explorer и отключите автоматическую настройку для локальной сети. В моем случае это также устранило задержку для первого запроса в RestSharp.

Ответ 2

Пытался избавиться от автоматической конфигурации, чтобы искать прокси-сервер с этим

System.Net.WebRequest.DefaultWebProxy = null;

Ответ 3

Если вы используете winforms и т.д. в app.config после connectionstrings:

<system.net>
  <defaultProxy enabled="true">
    <proxy usesystemdefault="True"/>
  </defaultProxy>
</system.net>

Ответ 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;