public FeignOptions() { Assemblies = new List <Assembly>(); Converters = new ConverterCollection(); //Converters.AddConverter(new ClassToStringConverter<string>()); //Converters.AddConverter(new StructToStringConverter<int>()); //Converters.AddConverter(new StructToStringConverter<long>()); Converters.AddConverter(new ObjectStringConverter()); MediaTypeFormatters = new MediaTypeFormatterCollection(); MediaTypeFormatters.AddFormatter(new JsonMediaTypeFormatter(this)); MediaTypeFormatters.AddFormatter(new JsonMediaTypeFormatter(Constants.MediaTypes.TEXT_JSON, this)); MediaTypeFormatters.AddFormatter(new XmlMediaTypeFormatter()); MediaTypeFormatters.AddFormatter(new XmlMediaTypeFormatter(Constants.MediaTypes.TEXT_XML)); MediaTypeFormatters.AddFormatter(new FormUrlEncodedMediaTypeFormatter()); MediaTypeFormatters.AddFormatter(new MultipartFormDataMediaTypeFormatter()); FeignClientPipeline = new GlobalFeignClientPipeline(); Lifetime = FeignClientLifetime.Transient; Types = new List <FeignClientTypeInfo>(); DiscoverServiceCacheTime = TimeSpan.FromMinutes(10); PropertyNamingPolicy = NamingPolicy.CamelCase; #if USE_SYSTEM_TEXT_JSON JsonProvider = new SystemTextJsonProvider(); #else JsonProvider = new NewtonsoftJsonProvider(); #endif }
public RecyclableTransformTests(ITestOutputHelper output) { _output = output; Enumerable.Repeat <byte>(0xFF, 1000).ToArray().CopyTo(_data, 0); Enumerable.Repeat <byte>(0xAA, 1000).ToArray().CopyTo(_data, 1000); Enumerable.Repeat <byte>(0x1A, 1000).ToArray().CopyTo(_data, 2000); Enumerable.Repeat <byte>(0xAF, 1000).ToArray().CopyTo(_data, 3000); Enumerable.Repeat <byte>(0x01, 1000).ToArray().CopyTo(_data, 4000); MyClass.ByteData = _data; var hashingProvider = new Argon2ID_HashingProvider(); var hashKey = hashingProvider.GetHashKey(Passphrase, Salt, 32); var serializationProvider = new NewtonsoftJsonProvider(); _originalSize = serializationProvider.Serialize(MyClass).Length; _middleware = new RecyclableTransformer( serializationProvider, new RecyclableGzipProvider(), new RecyclableAesGcmEncryptionProvider(hashKey)); (_serializedData, _serializedLength) = _middleware.Transform(MyClass); }
/// <summary> /// 请求接口域 /// </summary> /// <param name="host">域名</param> public HttpClient(string host) { if (string.IsNullOrEmpty(host)) { throw new BusinessException("域名不能为空", HttpStatus.Err.Id); } Host = host; _restClient = new RestClient(Host); _jsonProvider = new NewtonsoftJsonProvider(); _xmlProvider = new XmlProvider(); _encoding = Encoding.UTF8; _files = new List <RequestMultDataParam>(); Headers = new Dictionary <string, string>(); _requestBodyType = RequestBodyType.ApplicationJson; _requestBodyFormat = null; }
public void Test() { List <string> errList = new List <string>(); List <string> list = FileCommon.GetContentFormFile(Path.Combine("Resources", "useragent.txt")); list.ForEach(userAgent => { start: try { var ua = new UserAgent(userAgent).Execute(); } catch (Exception ex) { errList.Add(userAgent); Console.WriteLine($"UserAgent:{userAgent},异常信息:{ex.ExtractAllStackTrace()}"); goto start; } }); var res = new NewtonsoftJsonProvider().Serializer(errList); }
/// <summary> /// 查重添加 /// </summary> /// <typeparam name="T">类型</typeparam> /// <param name="t1">集合1</param> /// <param name="t2">集合2</param> /// <returns></returns> private static List <T> MinusExcept <T>(this List <T> t1, List <T> t2) where T : class, new() { IJsonProvider jsonProvider = new NewtonsoftJsonProvider(); List <T> resultList = new CloneableClass().DeepClone(t1); List <string> resultStrList = new List <string>(); if (resultStrList.Count == 0 && resultList.Count != 0) { t1.ForEach(item => { resultStrList.Add(jsonProvider.Serializer(item)); }); } foreach (var item in t2) { var str = jsonProvider.Serializer(item); if (resultStrList.Contains(str)) { resultStrList.Remove(str); } } return(resultStrList.Select(x => jsonProvider.Deserialize <T>(x)).ToList()); }