using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Net;
|
using System.Text;
|
using WIDESEA_Common.Tools;
|
|
namespace WIDESEA_Core.Utilities
|
{
|
public class WebResponse
|
{
|
public string message { get; set; }
|
|
public bool status { get; set; }
|
|
public object data { get; set; }
|
|
public void Success(object data, string msg = "")
|
{
|
this.data = data;
|
this.message = msg;
|
this.status = true;
|
}
|
|
public WebResponse Success(string msg = "")
|
{
|
this.message = msg;
|
this.status = true;
|
return this;
|
}
|
|
public WebResponse Error(string msg = "")
|
{
|
this.message = msg;
|
this.status = false;
|
return this;
|
}
|
}
|
|
public class ToWIFI
|
{
|
|
//private static Logger logger = Logger.getLogger();
|
/// <summary>
|
/// 带参数的Post请求
|
/// </summary>
|
/// <param name="url"></param>
|
/// <param name="parameters"></param>
|
/// <returns></returns>
|
public static string PostByPara(string Url, Dictionary<string, string> jsonParas)
|
{
|
//logger.DebugStart("HttpHelper.PostByPara");
|
//logger.DebugStart("Url=" + Url + ",jsonParas=" + jsonParas);
|
// WriteLog.GetLog("PostByPara").Write("PostByPara接口调用开始" + Url + jsonParas + DateTime.Now, "PostByPara");
|
if (Url != string.Empty && jsonParas != null)
|
{
|
try
|
{
|
string strURL = Url;
|
HttpWebRequest request;
|
request = (HttpWebRequest)WebRequest.Create(strURL);
|
request.Method = "POST";
|
request.ContentType = "application/json;charset=UTF-8";
|
request.CookieContainer = null;
|
request.Timeout = 30000;
|
string paraUrlCoded = JsonConvert.SerializeObject(jsonParas);
|
byte[] payload;
|
payload = System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);
|
request.ContentLength = payload.Length;
|
Stream writer = request.GetRequestStream();
|
writer.Write(payload, 0, payload.Length);
|
writer.Close();
|
System.Net.HttpWebResponse response;
|
response = (System.Net.HttpWebResponse)request.GetResponse();
|
System.IO.Stream s;
|
s = response.GetResponseStream();
|
string StrDate = "";
|
string strValue = "";
|
StreamReader Reader = new StreamReader(s, Encoding.UTF8);
|
while ((StrDate = Reader.ReadLine()) != null)
|
{
|
strValue += StrDate + "\r\n";
|
}
|
Reader.Close();
|
response.Close();
|
//logger.DebugEnd("result=" + strValue);
|
//logger.DebugEnd("HttpHelper.PostByPara");
|
//WriteLog.GetLog("PostByPara").Write("PostByPara接口调用结束" + Url + strValue + DateTime.Now, "PostByPara");
|
return strValue;
|
|
}
|
catch (Exception ex)
|
{
|
// WriteLog.GetLog("PostByPara").Write($"PostByPara接口调用失败:{Url},{ex.Message}", "PostByPara");
|
//logger.Error("HttpHelper.PostByPara -> " + ErrorCode.Common.cx100001 + " -> " + ErrorCode.Common.cx100001.GetDescription());
|
//logger.Error("HttpHelper.PostByPara -> " + ex.ToString());
|
}
|
}
|
else
|
{
|
//logger.Error("HttpHelper.PostByPara -> " + ErrorCode.Common.cx100002+ " -> " + ErrorCode.Common.cx100002.GetDescription());
|
|
}
|
//logger.DebugEnd("result=null");
|
//logger.DebugEnd("HttpHelper.PostByPara");
|
return null;
|
}
|
|
/// <summary>
|
/// post请求
|
/// </summary>
|
/// <param name="url"></param>
|
/// <param name="parm">参数</param>
|
/// <returns></returns>
|
public static WebResponse Post(string url, object parm)
|
{
|
WebResponse res = new WebResponse();
|
HttpWebResponse response = null;
|
StreamReader resultReader = null;
|
try
|
{
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
|
request.Timeout = 5000;
|
request.Method = "POST";
|
request.ContentType = "application/json; charset=UTF-8";
|
byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(parm));
|
request.ContentLength = data.Length;
|
using (Stream newStream = request.GetRequestStream())
|
{
|
newStream.Write(data, 0, data.Length);
|
};
|
|
response = (HttpWebResponse)request.GetResponse();
|
Stream webStream = response.GetResponseStream();
|
if (webStream == null)
|
{
|
throw new Exception("Network error");
|
}
|
int statsCode = (int)response.StatusCode;
|
|
resultReader = new StreamReader(webStream, Encoding.UTF8);
|
string responseContent = resultReader.ReadToEnd();
|
|
if (statsCode != 200)
|
{
|
throw new Exception("异常,响应码:" + statsCode.ToString());
|
}
|
res = JsonConvert.DeserializeObject<WebResponse>(responseContent);
|
}
|
catch (Exception ex)
|
{
|
res.Error(ex.Message);
|
}
|
finally
|
{
|
if (response != null)
|
response.Close();
|
if (resultReader != null)
|
resultReader.Close();
|
}
|
return res;
|
}
|
}
|
}
|