Example #1
0
        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);
        }
Example #3
0
        /// <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());
        }