/// <summary> /// 请求方法WebClient /// </summary> /// <param name="model"></param> /// <returns></returns> public static string CallRequestMethodWebClient(ResponseCallModel model) { try { WebClient wc = new WebClient(); string format = string.Empty; if (model.EncodingFormat == EncodingFormat.UTF8) { format = "utf-8"; } else { format = model.EncodingFormat.ToString(); } Encoding encoding = Encoding.GetEncoding(format); //下面是GB2312编码 byte[] sendData = encoding.GetBytes(model.RequestParam); //wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded"); wc.Headers.Add("Content-Type", "text/plain; charset=utf-8"); wc.Headers.Add("ContentLength", sendData.Length.ToString()); byte[] recData = wc.UploadData(model.URI, model.RequestMethod.ToString(), sendData); return(encoding.GetString(recData)); } catch (Exception ex) { BugLog.Write(ex.ToString()); throw new WebException("WebClient请求出错!!" + ex.ToString()); } }
/// <summary> /// 请求方法WebResponse/WebRequest /// </summary> /// <param name="model"></param> /// <returns></returns> public static string CallRequestMethod(ResponseCallModel model) { try { Uri uri = null; try { uri = new Uri(model.URI); } catch (Exception ex) { throw new UriFormatException("url 错误" + model.URI + ex.ToString()); } WebRequest req = HttpWebRequest.Create(model.URI); string format = string.Empty; if (model.EncodingFormat == EncodingFormat.UTF8) { format = "utf-8"; } else { format = model.EncodingFormat.ToString(); } Encoding encoding = Encoding.GetEncoding(format); string param = model.RequestParam; param = param.Replace("+", "%2B"); param = param.Replace("&", "%26"); //param = param.Replace("/", "%2F"); //param = param.Replace("?", "%3F"); //param = param.Replace("%", "%25"); //param = param.Replace("#", "%23"); //param = param.Replace("<", "<"); byte[] bs = encoding.GetBytes(param); //Encoding.ASCII.GetBytes req.Method = model.RequestMethod.ToString(); //req.ContentType = "application/x-www-form-urlencoded"; text/plain; charset=utf-8 req.ContentType = "text/plain; charset=utf-8"; req.ContentLength = bs.Length; using (Stream sw = req.GetRequestStream()) { sw.Write(bs, 0, bs.Length); //sw.Close(); } string responseData = String.Empty; using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding)) { responseData = reader.ReadToEnd().ToString(); } } return(responseData); } catch (Exception ex) { BugLog.Write(ex.ToString()); throw new WebException("http请求出错!!" + ex.ToString()); } }