123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- 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;
- }
- }
- /// <summary>
- /// 资讯接口验证配置
- /// </summary>
- public static Dictionary<string, string> ZXHeader
- {
- get
- {
- return Nested.zxHeader;
- }
- }
- class Nested
- {
- internal static readonly Dictionary<string, string> zxHeader = new Dictionary<string, string> {
- { "Code",ConfigurationManager.AppSettings["ZxCode"] }
- };
- }
- #endregion
- /// <summary>
- /// get请求
- /// </summary>
- /// <param name="url"></param>
- /// <returns></returns>
- public static string Get(string url, Dictionary<string, string> 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<BaseJsonResult>();
- if (data.Code == 200)
- return data.Data.ToString();
- else
- return string.Empty;
- }
- }
- /// <summary>
- /// post请求
- /// </summary>
- /// <param name="url"></param>
- /// <param name="jsonObj"></param>
- /// <returns></returns>
- public static string Post(string url, object jsonObj, Dictionary<string, string> 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<BaseJsonResult>();
- if (data.Code == 200)
- return data.Data.ToString();
- else
- return string.Empty;
- }
- }
- private static void AddHeader(HttpClient http, Dictionary<string, string> header)
- {
- if (header == null)
- return;
- foreach (var item in header)
- {
- http.DefaultRequestHeaders.Add(item.Key, item.Value);//添加headers
- }
- }
- }
- public class BaseJsonResult
- {
- /// <summary>
- /// 状态编码
- /// </summary>
- public int Code { get; set; }
- /// <summary>
- /// 数据
- /// </summary>
- public object Data { get; set; }
- /// <summary>
- /// 返回信息
- /// </summary>
- public string Message { get; set; }
- }
- }
|