|
|
|
using System.IO;
|
using System.Net;
|
|
namespace HDLCloudMonitor
|
{
|
public class HttpHp
|
{
|
#region WebRequest + WebResponse
|
/// <summary>
|
/// 可以带请求数据,但不带Cookie
|
/// </summary>
|
/// <param name="requestUrl"></param>
|
/// <param name="requestMethod"></param>
|
/// <param name="requestData"></param>
|
/// <returns></returns>
|
public static string RequestOneUrlAnswerString(string requestUrl, string requestMethod, byte[] requestData)
|
{
|
return RequestOneUrlAnswerString(requestUrl, requestMethod, requestData, null);
|
}
|
|
/// <summary>
|
/// 指定一个Url,和请求方法,数据,Cookie,得到响应的数据
|
/// </summary>
|
/// <param name="requestUrl">请求Url</param>
|
/// <param name="requestMethod">请求方法</param>
|
/// <param name="requestData">请求的的数据</param>
|
/// <param name="requestCookieStr">Cookie字符串</param>
|
/// <returns>得到响应的数据</returns>
|
public static string RequestOneUrlAnswerString(string requestUrl, string requestMethod, byte[] requestData,
|
string requestCookieStr)
|
{
|
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, error) =>
|
{
|
return true;
|
};
|
HttpWebRequest httpWebRequestObj = WebRequest.CreateHttp(requestUrl);
|
|
if (httpWebRequestObj != null)
|
{
|
#region 请求准备
|
httpWebRequestObj.Method = requestMethod; //get post put delete
|
|
//是用来在post提交的时候写post的内容的流,GET是不能有附加内容的,他附加的内容是在URL中的
|
if (
|
(requestMethod.ToLower().Trim().Equals("post"))
|
&&
|
(requestData != null)
|
&&
|
(requestData.Length > 0))
|
{
|
httpWebRequestObj.ContentType = "application/json";
|
Stream requestStream = httpWebRequestObj.GetRequestStream();
|
requestStream.Write(requestData, 0, requestData.Length);
|
requestStream.Close();
|
}
|
|
#endregion
|
|
#region 得到请求的响应流并进行转化
|
using (HttpWebResponse httpWebResponseObj = httpWebRequestObj.GetResponse() as HttpWebResponse)
|
{
|
if (httpWebResponseObj == null)
|
{
|
return "ParameterOrEmpty";
|
}
|
else
|
{
|
Stream ResponseStream = httpWebResponseObj.GetResponseStream();
|
|
using (StreamReader Sr = new StreamReader(ResponseStream))
|
{
|
string ResponseString = Sr.ReadToEnd();
|
return ResponseString;
|
}
|
}
|
}
|
#endregion
|
}
|
else
|
{
|
return "ParameterOrEmpty";
|
}
|
}
|
|
#endregion
|
}
|
}
|