/// <summary> /// 获取认证方式 /// </summary> /// <param name="apiAuthentication">认证方式</param> /// <returns></returns> private static AuthenticationHeaderValue GetAuthenticationHeaderValue(ApiAuthenticationEnum apiAuthentication) { AuthenticationHeaderValue authentication; switch (apiAuthentication) { default: authentication = null; break; case ApiAuthenticationEnum.User: //此身份验证方式安全性较低 authentication = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes("MyFrameCore:U2FsdGVkX1+EMHCSK8N6i8IOZOCj3hfGEb2DcesfWk4="))); break; } return(authentication); }
/// <summary> /// 创建HttpClient /// </summary> /// <param name="apiAuthentication"></param> /// <returns>HttpClient</returns> private static HttpClient PrepareHttpClient(ApiAuthenticationEnum apiAuthentication, string data = "") { var handler = new HttpClientHandler { AllowAutoRedirect = false, AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate }; // ssl请求 //handler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;正式环境报错:他处理程序不支持自定义与此结合证书处理 var httpClient = new HttpClient(handler); var authentication = GetAuthenticationHeaderValue(apiAuthentication); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); string salt = getsalt(), passid = getpassid(salt, data), timestamp = gettime(), signature = getsign(timestamp, salt, passid, data); httpClient.DefaultRequestHeaders.Add("passid", passid); httpClient.DefaultRequestHeaders.Add("timestamp", timestamp); httpClient.DefaultRequestHeaders.Add("salt", salt); httpClient.DefaultRequestHeaders.Add("signature", signature); httpClient.DefaultRequestHeaders.AcceptEncoding.Add(StringWithQualityHeaderValue.Parse("gzip")); httpClient.DefaultRequestHeaders.Authorization = authentication; return(httpClient); }