using System;
using System.IO;
using System.Net;
using System.Text;
namespace Pcb.Common
{
///
///
///
public class HttpUty
{
#region Post请求
///
/// Post请求
///
/// 访问地址
/// 提交参数
/// 返回内容
public static string RestfulPost(string strUrl, string strParameter, string token = "")
{
GC.Collect();//垃圾回收,回收没有正常关闭的http连接
string strResult = "";//返回结果
HttpWebRequest hwrRequest = null;
HttpWebResponse hwrResponse = null;
Stream stmRequest = null;
try
{
ServicePointManager.DefaultConnectionLimit = 200;//设置最大连接数
hwrRequest = (HttpWebRequest)WebRequest.Create(strUrl);
hwrRequest.Method = "POST";
if (!token.Equals(""))
{
hwrRequest.Headers.Add("token", token);
}
// hwrRequest.Headers.Add("Platform", "10");
hwrRequest.Accept = "application/json";
hwrRequest.ContentType = "application/json";//设置数据类型和长度
#region 往服务器写入数据
if (!string.IsNullOrWhiteSpace(strParameter))
{
byte[] bytRequest = Encoding.UTF8.GetBytes(strParameter);
hwrRequest.ContentLength = bytRequest.Length;
stmRequest = hwrRequest.GetRequestStream();
stmRequest.Write(bytRequest, 0, bytRequest.Length);
stmRequest.Close();
}
#endregion 往服务器写入数据
hwrResponse = (HttpWebResponse)hwrRequest.GetResponse();//获取服务端返回
StreamReader smrResponse = new StreamReader(hwrResponse.GetResponseStream(), Encoding.UTF8);//获取服务端返回数据
strResult = smrResponse.ReadToEnd().Trim();
smrResponse.Close();
return strResult;
}
catch (System.Threading.ThreadAbortException ex)
{
//System.Threading.Thread.ResetAbort();
throw ex;
}
catch (WebException ex)
{
throw ex;
}
catch (Exception ex)
{
throw ex;
}
finally
{
//关闭连接和流
if (hwrResponse != null) hwrResponse.Close();
if (hwrRequest != null) hwrRequest.Abort();
}
}
#endregion Post请求
#region Get请求
///
/// Get请求
///
/// 请求地址
/// 返回内容
public static string RestfulGet(string strUrl, string token = "")
{
GC.Collect();
string strResult = "";
HttpWebRequest hwrRequest = null;
HttpWebResponse hwrResponse = null;
//请求strUrl以获取数据
try
{
//设置最大连接数
ServicePointManager.DefaultConnectionLimit = 200;
/***************************************************************
* 下面设置HttpWebRequest的相关属性
* ************************************************************/
hwrRequest = (HttpWebRequest)WebRequest.Create(strUrl);
hwrRequest.Method = "GET";
if (!token.Equals(""))
{
hwrRequest.Headers.Add("token", token);
}
//获取服务器返回
hwrResponse = (HttpWebResponse)hwrRequest.GetResponse();
//获取HTTP返回数据
StreamReader sr = new StreamReader(hwrResponse.GetResponseStream(), Encoding.UTF8);
strResult = sr.ReadToEnd().Trim();
sr.Close();
return strResult;
}
catch (System.Threading.ThreadAbortException ex)
{
System.Threading.Thread.ResetAbort();
throw new Exception(ex.Message.ToString());
}
catch (WebException wex)
{
throw new Exception(wex.ToString());
}
catch (Exception ex)
{
throw ex;
}
finally
{
//关闭连接和流
if (hwrResponse != null) hwrResponse.Close();
if (hwrRequest != null) hwrRequest.Abort();
}
}
#endregion Get请求
}
}