using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using WIDESEA_Common.Tools; using WIDESEA_Core.Utilities; namespace WIDESEA_Core.Utilities { public class HttpHelper { //private static Logger logger = Logger.getLogger(); /// /// 带参数的Post请求 /// /// /// /// public static string PostByPara(string Url, string jsonParas) { //logger.DebugStart("HttpHelper.PostByPara"); //logger.DebugStart("Url=" + Url + ",jsonParas=" + jsonParas); WriteLog.Info("PostByPara").Write("PostByPara接口调用开始" + Url + jsonParas + DateTime.Now, "PostByPara"); if (Url != string.Empty && jsonParas != string.Empty) { 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 = 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.Info("PostByPara").Write("PostByPara接口调用结束" + Url + strValue + DateTime.Now, "PostByPara"); return strValue; } catch (Exception ex) { WriteLog.Info("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; } /// /// 带参数的Get请求 /// /// /// /// public static string GetByPara(string Url, Dictionary param) { //logger.DebugStart("HttpHelper.GetByPara"); //logger.DebugStart("Url=" + Url+ ",param.length="+ (param==null? "0":param.Count.ToString())); if (Url != string.Empty) { try { StringBuilder builder = new StringBuilder(); builder.Append(Url); if (param != null && param.Count > 0) { int i = 0; foreach (var item in param) { if (i == 0) { builder.Append("?"); } else { builder.Append("&"); } builder.AppendFormat("{0}={1}", item.Key, item.Value); i++; } } string strURL = builder.ToString(); HttpWebRequest request; request = (HttpWebRequest)WebRequest.Create(strURL); request.Method = "GET"; request.Timeout = 30000; 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.GetByPara"); return strValue; } catch (Exception ex) { //logger.Error("HttpHelper.GetByPara -> " + ErrorCode.Common.cx100001 + " -> " + ErrorCode.Common.cx100001.GetDescription()); //logger.Error("HttpHelper.GetByPara -> " + ex.ToString()); } } else { //logger.Error("HttpHelper.GetByPara -> " + ErrorCode.Common.cx100002+ " -> " + ErrorCode.Common.cx100002.GetDescription()); } //logger.DebugEnd("result=null"); //logger.DebugEnd("HttpHelper.GetByPara"); return null; } } }