示例#1
0
        public ArribaClient(Uri url, TimeSpan?timeout = null)
        {
            HttpClientHandler handler = new HttpClientHandler();

            handler.UseDefaultCredentials = true; // Enable windows auth

            _httpClient = new HttpClient(handler);
            _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            _httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*"));
            _httpClient.BaseAddress = url;
            _httpClient.Timeout     = timeout ?? _httpClient.Timeout;

            _serializerSettings = new JsonSerializerSettings()
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
                {
                    NamingStrategy = new CamelCaseNamingStrategy()
                    {
                        ProcessDictionaryKeys = false
                    }
                },
                Formatting = Debugger.IsAttached ? Formatting.Indented : Formatting.None
            };

            // TODO: Use composition to import Converters
            foreach (JsonConverter converter in ConverterFactory.GetArribaConverters())
            {
                _serializerSettings.Converters.Add(converter);
            }
        }