using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace GxPress.Common.Http
{
///
/// HttpClient
///
public static class HttpClientHelper
{
///
/// get
///
///
///
///
public static async Task GetHeadersAsync(string url, Dictionary headers)
{
HttpClient httpClient = new HttpClient(); //http对象
//添加header
foreach (var header in headers)
{
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
}
var response = await httpClient.GetAsync(url);
return response;
}
///
/// 根据地址下载
///
///
///
public static async Task GetByteArrayAsync(string url)
{
HttpClient httpClient = new HttpClient(); //http对象
var response = await httpClient.GetByteArrayAsync(url);
return response;
}
///
/// post
///
///
/// json
///
///
public static async Task PostAsync(string url, object jsonObj,
Dictionary headers = null)
{
HttpClient httpClient = new HttpClient(); //http对象
if (headers != null)
foreach (var header in headers)
{
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
}
HttpResponseMessage response = await httpClient.PostAsync(url,
new JsonContent(jsonObj));
return response;
}
///
/// rest删除
///
///
///
///
public static async Task DeleteAsync(string url, Dictionary headers = null)
{
HttpClient httpClient = new HttpClient(); //http对象
if (headers != null)
foreach (var header in headers)
{
httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
}
HttpResponseMessage response = await httpClient.DeleteAsync(url);
return response;
}
///
/// 返回JSon数据
///
/// 要处理的JSON数据
/// 要提交的URL
/// 返回的JSON处理字符串
public static string GetResponseData(string JSONData, string Url)
{
try
{
byte[] bytes = Encoding.UTF8.GetBytes(JSONData);
var request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "text/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, 0, bytes.Length);
//声明一个HttpWebRequest请求
request.Timeout = 90000;
//设置连接超时时间
//request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose();
return strResult;
}
catch (System.Exception)
{
return "";
}
return "";
}
}
}