using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; using System.Configuration; namespace CP.Common { public class ApiHelper { #region 配置 private static string _url = null; public ApiHelper(string url) { _url = url; if (string.IsNullOrEmpty(url)) url = ConfigurationManager.AppSettings["ZxUrl"]; } public static string GetUrl { get { if (string.IsNullOrEmpty(_url)) return ConfigurationManager.AppSettings["ZxUrl"]; return _url; } } /// /// 资讯接口验证配置 /// public static Dictionary ZXHeader { get { return Nested.zxHeader; } } class Nested { internal static readonly Dictionary zxHeader = new Dictionary { { "Code",ConfigurationManager.AppSettings["ZxCode"] } }; } #endregion /// /// get请求 /// /// /// public static string Get(string url, Dictionary header = null) { var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate };//文件类型 using (var http = new HttpClient(handler)) { AddHeader(http, header); var response = http.GetStringAsync(GetUrl + url);//请求 var data = response.Result.ToString().JsonToT(); if (data.Code == 200) return data.Data.ToString(); else return string.Empty; } } /// /// post请求 /// /// /// /// public static string Post(string url, object jsonObj, Dictionary header = null) { var handler = new HttpClientHandler() { AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate };//文件类型 using (var http = new HttpClient(handler)) { AddHeader(http, header); var response = http.PostAsJsonAsync(GetUrl + url, jsonObj).Result; response.EnsureSuccessStatusCode(); var data = response.Content.ReadAsStringAsync().Result.ToString().JsonToT(); if (data.Code == 200) return data.Data.ToString(); else return string.Empty; } } private static void AddHeader(HttpClient http, Dictionary header) { if (header == null) return; foreach (var item in header) { http.DefaultRequestHeaders.Add(item.Key, item.Value);//添加headers } } } public class BaseJsonResult { /// /// 状态编码 /// public int Code { get; set; } /// /// 数据 /// public object Data { get; set; } /// /// 返回信息 /// public string Message { get; set; } } }