Ejemplo n.º 1
0
 /// <summary>
 /// 获取内容
 /// </summary>
 /// <param name="header">Http头</param>
 /// <param name="cookie">Cookie</param>
 /// <returns></returns>
 public static string Get(DotnetReuqetHeader header, CookieContainer cookie)
 {
     try
     {
         HttpWebRequest req = buildRequest(header);
         req.Method            = "GET";
         req.CookieContainer   = cookie;
         req.AllowAutoRedirect = true;
         Encoding encoding = Encoding.GetEncoding(header.Encoding);
         if (string.IsNullOrEmpty(req.ContentType))
         {
             req.ContentType = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
         }
         HttpWebResponse resp            = (HttpWebResponse)req.GetResponse();
         StreamReader    streamReader    = new StreamReader(resp.GetResponseStream(), encoding);
         string          responseContent = streamReader.ReadToEnd();
         req.Abort();
         resp.Close();
         streamReader.Close();
         return(responseContent);
     }
     catch (Exception exp)
     {
         return("错误:" + exp.Message);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建REQUEST
        /// </summary>
        /// <param name="header"></param>
        /// <returns></returns>
        private static HttpWebRequest buildRequest(DotnetReuqetHeader header)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(header.Url);

            req.Method  = "GET";
            req.Timeout = 20000;

            if (!string.IsNullOrEmpty(header.Accept))
            {
                req.Accept = header.Accept;
            }

            if (!string.IsNullOrEmpty(header.ContentType))
            {
                req.ContentType = header.ContentType;
            }

            if (!string.IsNullOrEmpty(header.Host))
            {
                req.Host = header.Host;
            }

            if (!string.IsNullOrEmpty(header.Origin))
            {
                req.Headers.Add("Origin", header.Origin);
            }

            if (!string.IsNullOrEmpty(header.Refer))
            {
                req.Referer = header.Refer;
            }


            req.UserAgent = UserAgent.RandomUserAget();


            req.Timeout = header.TimeOut;
            //否则有就设置
            if (header.Proxy != null)
            {
                WebProxy webProxy = new WebProxy(header.Proxy.ProxyIP, int.Parse(header.Proxy.ProxyPort));
                if (!string.IsNullOrEmpty(header.Proxy.ProxyUser))
                {
                    webProxy.Credentials = new NetworkCredential(header.Proxy.ProxyUser, header.Proxy.ProxyPass);
                }
                req.Proxy = webProxy;
            }

            return(req);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 获取图片信息
 /// </summary>
 /// <param name="header">HTTP 头</param>
 /// <param name="cookie">Cookie</param>
 /// <returns></returns>
 public static Bitmap GetImage(DotnetReuqetHeader header, CookieContainer cookie)
 {
     try
     {
         HttpWebRequest req = buildRequest(header);
         req.Method          = "GET";
         req.CookieContainer = cookie;
         req.ContentType     = "application/x-www-form-urlencoded";
         HttpWebResponse resp   = (HttpWebResponse)req.GetResponse();
         Bitmap          bitmap = Bitmap.FromStream(resp.GetResponseStream()) as Bitmap;
         req.Abort();
         resp.Close();
         return(bitmap);
     }
     catch
     {
         return(null);
     }
 }
Ejemplo n.º 4
0
 /// <summary>
 /// 上传文件
 /// </summary>
 /// <param name="header">HTTP头</param>
 /// <param name="filePath">文件路径</param>
 /// <param name="cookie">cookie</param>
 /// <returns></returns>
 public static string PostFile(DotnetReuqetHeader header, string filePath, CookieContainer cookie)
 {
     try
     {
         byte[] data = null;
         using (FileStream fs = new FileStream(filePath, FileMode.Open))
         {
             using (BinaryReader br = new BinaryReader(fs))
             {
                 data = br.ReadBytes((int)br.BaseStream.Length);
             }
         }
         if (data != null)
         {
             HttpWebRequest req = buildRequest(header);
             req.Method            = "POST";
             req.CookieContainer   = cookie;
             req.AllowAutoRedirect = true;
             req.ContentType       = "application/octet-stream";
             req.ContentLength     = data.Length;
             Encoding encoding  = Encoding.GetEncoding(header.Encoding);
             Stream   outstream = req.GetRequestStream();
             outstream.Write(data, 0, data.Length);
             outstream.Close();
             HttpWebResponse resp            = (HttpWebResponse)req.GetResponse();
             StreamReader    streamReader    = new StreamReader(resp.GetResponseStream(), encoding);
             string          responseContent = streamReader.ReadToEnd();
             req.Abort();
             resp.Close();
             streamReader.Close();
             return(responseContent);
         }
         return(string.Empty);
     }
     catch (Exception exp)
     {
         return("错误" + exp.Message);
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// 发送数据
 /// </summary>
 /// <param name="header">HTTP头</param>
 /// <param name="postData">待发送的数据</param>
 /// <param name="cookie">Cookie</param>
 /// <returns></returns>
 public static string Post(DotnetReuqetHeader header, NameValueCollection postData, CookieContainer cookie)
 {
     try
     {
         HttpWebRequest req = buildRequest(header);
         req.Method            = "POST";
         req.CookieContainer   = cookie;
         req.AllowAutoRedirect = true;
         Encoding encoding = Encoding.GetEncoding(header.Encoding);
         if (string.IsNullOrEmpty(req.ContentType))
         {
             req.ContentType = "application/x-www-form-urlencoded";
         }
         string body = string.Empty;
         if (postData != null)
         {
             foreach (string key in postData.AllKeys)
             {
                 body += "&" + key + "=" + postData[key];
             }
             body = body.Substring(1);
             byte[] btBodys = encoding.GetBytes(body);
             req.ContentLength = btBodys.Length;
             req.GetRequestStream().Write(btBodys, 0, btBodys.Length);
         }
         HttpWebResponse resp            = (HttpWebResponse)req.GetResponse();
         StreamReader    streamReader    = new StreamReader(resp.GetResponseStream(), encoding);
         string          responseContent = streamReader.ReadToEnd();
         req.Abort();
         resp.Close();
         streamReader.Close();
         return(responseContent);
     }
     catch (Exception exp)
     {
         return(exp.Message);
     }
 }