zoukankan      html  css  js  c++  java
  • C# 模拟Http请求、下载

    1.引入必须的命名空间:

    using System.Net;
    using System.IO;

    2.模拟Http请求:

            /// <summary>
            /// 发送post请求
            /// </summary>
            /// <param name="Url">请求的url路径</param>
            /// <param name="postDataStr">参数</param>
            /// <returns>返回响应结果(字符串、json、xml)</returns>
            private string HttpPost(string _url, string _pms)
            {
                //创建request请求对象
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_url);
                //请求方式
                request.Method = "POST";
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = Encoding.UTF8.GetByteCount(_pms);
                Stream myRequestStream = request.GetRequestStream();
                StreamWriter myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
                myStreamWriter.Write(_pms);
                myStreamWriter.Close();
    
                //创建response响应对象
                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;
            }
     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;
            }
    
    
    


    3.模拟http下载:

     /// <summary>
           /// 模拟http下载文件到本地
           /// </summary>
           /// <param name="_url">下载链接</param>
           /// <param name="_localPath">本地存放地址</param>
           /// <returns>本地存放路径</returns>
            public static string HttpDownloadFile(string _url, string _localPath)
            {
    
                if(File.Exists(_localPath)){
                    return _localPath;
                }
                // 设置参数
                HttpWebRequest request = WebRequest.Create(_url) as HttpWebRequest;
    
                //发送请求并获取相应回应数据
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                //直到request.GetResponse()程序才开始向目标网页发送Post请求
                Stream responseStream = response.GetResponseStream();
    
                //创建本地文件写入流
                Stream stream = new FileStream(_localPath, FileMode.Create);
    
                byte[] byteArry = new byte[1024];
                int size = responseStream.Read(byteArry, 0, (int)byteArry.Length);
                while (size > 0)
                {
                    stream.Write(byteArry, 0, size);
                    size = responseStream.Read(byteArry, 0, (int)byteArry.Length);
                }
                stream.Close();
                responseStream.Close();
                return _localPath;
            }
    
    不积跬步,无以至千里;不积小流,无以成江海。ヾ(◍°∇°◍)ノ゙
  • 相关阅读:
    mongodb 配置单实例与双实例
    redis 集群 搭建
    memcached 搭建
    公网yum 源地址
    jdk 安装
    activemq 搭建--集群
    zookeeper 安装
    activemq 安装-单点
    rabbitmq 集群
    python——网络编程
  • 原文地址:https://www.cnblogs.com/jiangxianshen/p/7472450.html
Copyright © 2011-2022 走看看