Esempio n. 1
0
        /// <summary>
        /// 设置请求参数(只有Post请求方式才设置)
        /// </summary>
        /// <param name="webRequest">HttpWebRequest对象</param>
        /// <param name="requestParameter">请求参数对象</param>
        static void SetParameter(ref HttpWebRequest webRequest, HttpRequestParameter requestParameter)
        {
            if (requestParameter.Parameters == null || requestParameter.Parameters.Count <= 0)
            {
                return;
            }

            if (requestParameter.Method == ReQequestMethodType.Post)
            {
                StringBuilder data = new StringBuilder(string.Empty);
                foreach (KeyValuePair <string, string> keyValuePair in requestParameter.Parameters)
                {
                    data.AppendFormat("{0}={1}&", keyValuePair.Key, keyValuePair.Value);
                }
                string para = data.Remove(data.Length - 1, 1).ToString();
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                requestParameter.Encoding = Encoding.GetEncoding(requestParameter.EncodingStr);
                byte[] bytePosts = requestParameter.Encoding.GetBytes(para);
                webRequest.ContentLength = bytePosts.Length;
                using (Stream requestStream = webRequest.GetRequestStream())
                {
                    requestStream.Write(bytePosts, 0, bytePosts.Length);
                    requestStream.Close();
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// 设置请求头
 /// </summary>
 /// <param name="webRequest">HttpWebRequest对象</param>
 /// <param name="requestParameter">请求参数对象</param>
 static void SetHeader(HttpWebRequest webRequest, HttpRequestParameter requestParameter)
 {
     webRequest.Method            = requestParameter.Method.ToString();
     webRequest.ContentType       = "application/x-www-form-urlencoded";
     webRequest.Accept            = "text/html, application/xhtml+xml, */*";
     webRequest.KeepAlive         = true;
     webRequest.UserAgent         = "DotNetCore-Requests";
     webRequest.AllowAutoRedirect = true;
     webRequest.ProtocolVersion   = HttpVersion.Version11;
 }
        public IEnumerable <Request> Excute(HttpRequestParameter requestParameter)
        {
            List <Request> request_list = new List <Request>();

            foreach (var url in requestParameter.Url)
            {
                request_list.Add(HttpUtil.Excute(requestParameter, url));
            }
            return(request_list);
        }
Esempio n. 4
0
 /// <summary>
 /// 设置请求Cookie
 /// </summary>
 /// <param name="webRequest">HttpWebRequest对象</param>
 /// <param name="requestParameter">请求参数对象</param>
 private static void SetCookie(HttpWebRequest webRequest, HttpRequestParameter requestParameter)
 {
     // 必须实例化,否则响应中获取不到Cookie
     webRequest.CookieContainer = new CookieContainer();
     if (requestParameter.Cookie != null && !string.IsNullOrEmpty(requestParameter.Cookie.CookieString))
     {
         webRequest.Headers[HttpRequestHeader.Cookie] = requestParameter.Cookie.CookieString;
     }
     if (requestParameter.Cookie != null && requestParameter.Cookie.CookieCollection != null && requestParameter.Cookie.CookieCollection.Count > 0)
     {
         webRequest.CookieContainer.Add(requestParameter.Cookie.CookieCollection);
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 执行方法
        /// </summary>
        /// <param name="requestParameter">请求报文</param>
        /// <returns>响应报文</returns>
        public static Request Excute(HttpRequestParameter requestParameter, Uri url)
        {
            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);

            SetHeader(webRequest, requestParameter);
            SetCookie(webRequest, requestParameter);
            // 4.ssl/https请求设置
            //if (Regex.IsMatch(requestParameter.Url.ToString(), "^https://"))
            //{
            //    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
            //    ServicePointManager.ServerCertificateValidationCallback = CheckValidationResult;
            //}
            SetParameter(ref webRequest, requestParameter);
            return(new Request()
            {
                WebRequest = webRequest
            });
        }