博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF HTTP请求(GET,POST)
阅读量:4978 次
发布时间:2019-06-12

本文共 6707 字,大约阅读时间需要 22 分钟。

WPF HTTP请求(GET,POST)

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Net;using System.Net.Security;using System.Security.Cryptography.X509Certificates;using System.Text;using System.Threading.Tasks;namespace Nova.NovaiCloud.NovaiCloudCareHelper.Common{    public class HttpRequestHelper    {        public static string HttpPost(string Url, string postDataStr,ref bool isSuccess)        {            try            {                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);                request.Method = "POST";                request.ContentType = "application/json";                request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);                //request.CookieContainer = cookie;                Stream myRequestStream = request.GetRequestStream();                StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));                myStreamWriter.Write(postDataStr);                myStreamWriter.Close();                HttpWebResponse response = (HttpWebResponse)request.GetResponse();                //response.Cookies = cookie.GetCookies(response.ResponseUri);                Stream myResponseStream = response.GetResponseStream();                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));                string retString = myStreamReader.ReadToEnd();                myStreamReader.Close();                myResponseStream.Close();                return retString;            }            catch (Exception e)            {                isSuccess = false;                Console.Write(e.Message);                return e.Message;            }        }        public string HttpGet(string Url, string postDataStr)        {            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);            request.Method = "GET";            request.ContentType = "application/json";            HttpWebResponse response = (HttpWebResponse)request.GetResponse();            Stream myResponseStream = response.GetResponseStream();            StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));            string retString = myStreamReader.ReadToEnd();            myStreamReader.Close();            myResponseStream.Close();            return retString;        }        ///           /// 创建GET方式的HTTP请求          ///           //public static HttpWebResponse CreateGetHttpResponse(string url, int timeout, string userAgent, CookieCollection cookies)        public static HttpWebResponse CreateGetHttpResponse(string url)        {            HttpWebRequest request = null;            if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase))            {                //对服务端证书进行有效性校验(非第三方权威机构颁发的证书,如自己生成的,不进行验证,这里返回true)                ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);                request = WebRequest.Create(url) as HttpWebRequest;                request.ProtocolVersion = HttpVersion.Version10;    //http版本,默认是1.1,这里设置为1.0            }            else            {                request = WebRequest.Create(url) as HttpWebRequest;            }            request.Method = "GET";            //设置代理UserAgent和超时            //request.UserAgent = userAgent;            //request.Timeout = timeout;            //if (cookies != null)            //{            //    request.CookieContainer = new CookieContainer();            //    request.CookieContainer.Add(cookies);            //}            return request.GetResponse() as HttpWebResponse;        }        ///           /// 创建POST方式的HTTP请求          ///           //public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary
parameters, int timeout, string userAgent, CookieCollection cookies) public static HttpWebResponse CreatePostHttpResponse(string url, IDictionary
parameters) { HttpWebRequest request = null; //如果是发送HTTPS请求 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { //ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); request = WebRequest.Create(url) as HttpWebRequest; //request.ProtocolVersion = HttpVersion.Version10; } else { request = WebRequest.Create(url) as HttpWebRequest; } request.Method = "POST"; request.ContentType = "application/json"; //设置代理UserAgent和超时 //request.UserAgent = userAgent; //request.Timeout = timeout; //if (cookies != null) //{ // request.CookieContainer = new CookieContainer(); // request.CookieContainer.Add(cookies); //} //发送POST数据 if (!(parameters == null || parameters.Count == 0)) { StringBuilder buffer = new StringBuilder(); int i = 0; foreach (string key in parameters.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, parameters[key]); } else { buffer.AppendFormat("{0}={1}", key, parameters[key]); i++; } } byte[] data = Encoding.ASCII.GetBytes(buffer.ToString()); using (Stream stream = request.GetRequestStream()) { stream.Write(data, 0, data.Length); } } string[] values = request.Headers.GetValues("Content-Type"); return request.GetResponse() as HttpWebResponse; } ///
/// 获取请求的数据 /// public static string GetResponseString(HttpWebResponse webresponse) { using (Stream s = webresponse.GetResponseStream()) { StreamReader reader = new StreamReader(s, Encoding.UTF8); return reader.ReadToEnd(); } } ///
/// 验证证书 /// private static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { if (errors == SslPolicyErrors.None) return true; return false; } }}

  

转载于:https://www.cnblogs.com/amwuau/p/7567656.html

你可能感兴趣的文章