public IRestClient Create(IRestClientSettings settings)
 {
     return(new RestClient(
                settings,
                HttpClientFactory.CreateClient()
                ));
 }
Пример #2
0
        public RestClient(IHttpClient client, IRestClientSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException(nameof(settings));
            }
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            if (settings.BaseUri != null)
            {
                client.BaseAddress = settings.BaseUri;
            }
            else if (client.BaseAddress != null)
            {
                settings.BaseUri = client.BaseAddress;
            }
            else
            {
                throw new ArgumentException("A base URI is required.");
            }

            if (settings.DefaultHeaders != null)
            {
                foreach (var header in settings.DefaultHeaders)
                {
                    client.AddDefaultHeader(header.Key, header.Value);
                }
            }

            Settings   = settings;
            HttpClient = client;
        }
Пример #3
0
 public static bool Supports(this IRestClientSettings settings, ContentFormat format)
 {
     return(settings.Serializers != null && settings.Serializers.Any(x => x.SupportedFormat == format));
 }
Пример #4
0
 public static IContentSerializer KeyValueSerializer(this IRestClientSettings settings)
 {
     return(settings.Serializer(ContentFormat.KeyValue));
 }
Пример #5
0
 public static IContentSerializer XmlSerializer(this IRestClientSettings settings)
 {
     return(settings.Serializer(ContentFormat.Xml));
 }
Пример #6
0
 public static IContentSerializer Serializer(this IRestClientSettings settings, ContentFormat format)
 {
     return(settings.Serializers != null?settings.Serializers.FirstOrDefault(x => x.SupportedFormat == format) : null);
 }
Пример #7
0
 public static bool SupportsKeyValue(this IRestClientSettings settings) => settings.Supports(ContentFormat.KeyValue);
Пример #8
0
 public static bool SupportsJson(this IRestClientSettings settings) => settings.Supports(ContentFormat.Json);
Пример #9
0
 public static bool SupportsXml(this IRestClientSettings settings) => settings.Supports(ContentFormat.Xml);
Пример #10
0
 public static IRestClient AsRestClient(this HttpClient client, IRestClientSettings settings)
 {
     return(new DefaultHttpClient(client).AsRestClient(settings));
 }
Пример #11
0
 public static IRestClient AsRestClient(this IHttpClient client, IRestClientSettings settings)
 {
     return(new RestClient(client, settings));
 }
Пример #12
0
 public RestClient(IRestClientSettings settings)
     : this(CreateClient(settings), settings)
 {
 }
Пример #13
0
 private static IHttpClient CreateClient(IRestClientSettings settings)
 {
     return(settings.MessageHandler != null ? new DefaultHttpClient(settings.MessageHandler) : new DefaultHttpClient());
 }