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; }
}
}