zoukankan      html  css  js  c++  java
  • Http的帮助类

    HttpRequestHelper

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Web;
    
    namespace MPS.Utils
    {
        public class HttpResquestHelper
        {
            public string GetWebContent(string url)
            {
                Stream outstream = null;
                Stream instream = null;
                StreamReader sr = null;
                HttpWebResponse response = null;
                HttpWebRequest request = null;
                // 要注意的这是这个编码方式,还有内容的Xml内容的编码方式
                Encoding encoding = Encoding.GetEncoding("UTF-8");
                byte[] data = encoding.GetBytes(url);
    
                // 准备请求,设置参数
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "POST";
                request.ContentType = "text/xml";
                //request.ContentLength = data.Length;
    
                outstream = request.GetRequestStream();
                outstream.Write(data, 0, data.Length);
                outstream.Flush();
                outstream.Close();
                //发送请求并获取相应回应数据
    
                response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                instream = response.GetResponseStream();
    
                sr = new StreamReader(instream, encoding);
                //返回结果网页(html)代码
    
                string content = sr.ReadToEnd();
                return content;
            }
            public string PostXml(string url, string strPost)
            {
                string result = "";
    
                StreamWriter myWriter = null;
                HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
                objRequest.Method = "POST";
                //objRequest.ContentLength = strPost.Length;
                objRequest.ContentType = "text/xml";//提交xml 
                //objRequest.ContentType = "application/x-www-form-urlencoded";//提交表单
                try
                {
                    myWriter = new StreamWriter(objRequest.GetRequestStream());
                    myWriter.Write(strPost);
                }
                catch (Exception e)
                {
                    return e.Message;
                }
                finally
                {
                    myWriter.Close();
                }
    
                HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
                using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
                {
                    result = sr.ReadToEnd();
                    sr.Close();
                }
                return result;
            }
    
            /// <summary>
            /// 提交数据请求  方法一
            /// </summary>
            /// <param name="POSTURL">请求提交的地址 如:http://xxx.xxx.xxx/interface/TestPostRequest</param>
            /// <param name="PostData">提交的数据(字符串)</param>
            /// <returns></returns>
            public static string RequestData(string POSTURL, string PostData)
            {
                //发送请求的数据
                WebRequest myHttpWebRequest = WebRequest.Create(POSTURL);
                myHttpWebRequest.Method = "POST";
                UTF8Encoding encoding = new UTF8Encoding();
                byte[] byte1 = encoding.GetBytes(PostData);
                myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                myHttpWebRequest.ContentLength = byte1.Length;
                Stream newStream = myHttpWebRequest.GetRequestStream();
                newStream.Write(byte1, 0, byte1.Length);
                newStream.Close();
    
                //发送成功后接收返回的XML信息
                HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse();
                string lcHtml = string.Empty;
                Encoding enc = Encoding.GetEncoding("UTF-8");
                Stream stream = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(stream, enc);
                lcHtml = streamReader.ReadToEnd();
                return lcHtml;
            }
    
    
            /// <summary>
            /// 通过接口提交请求的公用方法   方法二
            /// </summary>
            /// <param name="url">请求的接口地址  如:http://xxx.xxx.xxx/interface/TestPostRequest</param>
            /// <param name="senddata">要发送的报文</param>
            /// <returns></returns>
            public string GetPostStr(string url, string senddata)
            {
                System.Net.WebClient webc = new System.Net.WebClient();
                var apiurl = new Uri(url);
                string sendstr = senddata;
                webc.Headers.Add("Content-Type", "text/xml");
                //webc.Headers["Content-Type"] = "application/stream;charset=utf-8";//OK  
                var arr = webc.UploadData(apiurl, Encoding.UTF8.GetBytes(sendstr));
                return Encoding.UTF8.GetString(arr);
            }
    
    
            CookieContainer cookie = new CookieContainer();
    
            private string HttpPost(string Url, string postDataStr)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                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;
            }
    
            public string HttpGet(string Url, string postDataStr)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
                request.Method = "GET";
                request.ContentType = "text/html;charset=UTF-8";
    
                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;
            }
        }
    }

    HttpPostHelper

     

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Web;
    
    namespace MPS.Utils
    {
        public class PostHelp
        {
            public string GetWebContent(string url)
            {
                Stream outstream = null;
                Stream instream = null;
                StreamReader sr = null;
                HttpWebResponse response = null;
                HttpWebRequest request = null;
                // 要注意的这是这个编码方式,还有内容的Xml内容的编码方式
                Encoding encoding = Encoding.GetEncoding("UTF-8");
                byte[] data = encoding.GetBytes(url);
    
                // 准备请求,设置参数
                request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "POST";
                request.ContentType = "text/xml";
                //request.ContentLength = data.Length;
    
                outstream = request.GetRequestStream();
                outstream.Write(data, 0, data.Length);
                outstream.Flush();
                outstream.Close();
                //发送请求并获取相应回应数据
    
                response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                instream = response.GetResponseStream();
    
                sr = new StreamReader(instream, encoding);
                //返回结果网页(html)代码
    
                string content = sr.ReadToEnd();
                return content;
            }
            public string PostXml(string url, string strPost)
            {
                string result = "";
    
                StreamWriter myWriter = null;
                HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
                objRequest.Method = "POST";
                //objRequest.ContentLength = strPost.Length;
                objRequest.ContentType = "text/xml";//提交xml 
                //objRequest.ContentType = "application/x-www-form-urlencoded";//提交表单
                try
                {
                    myWriter = new StreamWriter(objRequest.GetRequestStream());
                    myWriter.Write(strPost);
                }
                catch (Exception e)
                {
                    return e.Message;
                }
                finally
                {
                    myWriter.Close();
                }
    
                HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
                using (StreamReader sr = new StreamReader(objResponse.GetResponseStream()))
                {
                    result = sr.ReadToEnd();
                    sr.Close();
                }
                return result;
            }
    
            /// <summary>
            /// 提交数据请求  方法一
            /// </summary>
            /// <param name="POSTURL">请求提交的地址 如:http://xxx.xxx.xxx/interface/TestPostRequest</param>
            /// <param name="PostData">提交的数据(字符串)</param>
            /// <returns></returns>
            public static string RequestData(string POSTURL, string PostData)
            {
                //发送请求的数据
                WebRequest myHttpWebRequest = WebRequest.Create(POSTURL);
                myHttpWebRequest.Method = "POST";
                UTF8Encoding encoding = new UTF8Encoding();
                byte[] byte1 = encoding.GetBytes(PostData);
                myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
                myHttpWebRequest.ContentLength = byte1.Length;
                Stream newStream = myHttpWebRequest.GetRequestStream();
                newStream.Write(byte1, 0, byte1.Length);
                newStream.Close();
    
                //发送成功后接收返回的XML信息
                HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.GetResponse();
                string lcHtml = string.Empty;
                Encoding enc = Encoding.GetEncoding("UTF-8");
                Stream stream = response.GetResponseStream();
                StreamReader streamReader = new StreamReader(stream, enc);
                lcHtml = streamReader.ReadToEnd();
                return lcHtml;
            }
    
    
            /// <summary>
            /// 通过接口提交请求的公用方法   方法二
            /// </summary>
            /// <param name="url">请求的接口地址  如:http://xxx.xxx.xxx/interface/TestPostRequest</param>
            /// <param name="senddata">要发送的报文</param>
            /// <returns></returns>
            public string GetPostStr(string url, string senddata)
            {
                System.Net.WebClient webc = new System.Net.WebClient();
                var apiurl = new Uri(url);
                string sendstr = senddata;
                webc.Headers.Add("Content-Type", "text/xml");
                //webc.Headers["Content-Type"] = "application/stream;charset=utf-8";//OK  
                var arr = webc.UploadData(apiurl, Encoding.UTF8.GetBytes(sendstr));
                return Encoding.UTF8.GetString(arr);
            }
        }
    }

     

     

  • 相关阅读:
    适配器模式
    快排变种
    美团面试问题
    gulp前端自动化构建工具新手入门篇
    javascript继承
    .call()和.apply()相同点与不同点
    JavaScript原型,原型链 !
    锚点链接和hash属性
    构造函数与普通函数的比较
    JS的作用域和作用域链
  • 原文地址:https://www.cnblogs.com/zhengqian/p/8296759.html
Copyright © 2011-2022 走看看