/// <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); } }
/// <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); }
/// <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); } }
/// <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); } }
/// <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); } }