/// <summary> /// Posts data to a specified url. Note that this assumes that you have already url encoded the post data. /// </summary> /// <param name="url">the url to post to.</param> /// <param name="postData">The data to post.</param> /// <returns>Returns the result of the post.</returns> public PostResult PostData(string url, string postData) { PostResult result = null; HttpWebRequest request = null; if (WebInfo == null) { throw new ArgumentException("WebInfo cant be <null>!", "WebInfo"); } if (Type == PostTypeEnum.Get & postData.Length > 0) { if (url.Contains("?")) { url += "&" + postData; } else { url += "?" + postData; } } Uri uri = new Uri(url); request = (HttpWebRequest)System.Net.WebRequest.Create(uri); request.Credentials = CredentialCache.DefaultCredentials; request.CookieContainer = new CookieContainer(); if (IgnoreCookies == false) { request.CookieContainer.GetCookies(uri); } if (Cookies != null) { request.CookieContainer.Add(this.Cookies); } if (Proxy != null) { request.Proxy = Proxy; } if (Timeout > 0) { request.Timeout = Timeout; } if (url.StartsWith("https://") == true) { ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); } request.UserAgent = WebInfo.Useragent; request.Accept = WebInfo.RequestAccept; request.Headers.Add(HttpRequestHeader.AcceptLanguage, WebInfo.AcceptLanguage); request.Headers.Add(HttpRequestHeader.AcceptEncoding, WebInfo.AcceptEncoding); request.Headers.Add(HttpRequestHeader.AcceptCharset, WebInfo.AcceptCharset); request.Headers.Add(HttpRequestHeader.KeepAlive, WebInfo.KeepAlive.ToString()); foreach (KeyValuePair<string, string> pair in AdditionalHeader) { request.Headers.Add(pair.Key, pair.Value); } request.Referer = UrlReferer; request.KeepAlive = true; request.Method = Type.ToString().ToUpper(); request.AllowAutoRedirect = AutoRedirect; ServicePointManager.Expect100Continue = false; // sonst error if (Type == PostTypeEnum.Post) { request.ContentType = "application/x-www-form-urlencoded"; if (postData.Length > 0) { UTF8Encoding encoding = new UTF8Encoding(); byte[] requestBuf = encoding.GetBytes(postData); request.ContentLength = requestBuf.Length; try { Stream writeStream = request.GetRequestStream(); writeStream.Write(requestBuf, 0, requestBuf.Length); writeStream.Close(); } catch { } } else { request.ContentLength = 0; } } try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { result = new PostResult(response); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e); result = null; } return result; }
/// <summary> /// Posts data to a specified url. Note that this assumes that you have already url encoded the post data. /// </summary> /// <param name="url">the url to post to.</param> /// <param name="postData">The data to post.</param> /// <returns>Returns the result of the post.</returns> public PostResult PostData(string url, string postData) { PostResult result = null; HttpWebRequest request = null; if (WebInfo == null) { throw new ArgumentException("WebInfo cant be <null>!", "WebInfo"); } if (Type == PostTypeEnum.Get & postData.Length > 0) { if (url.Contains("?")) { url += "&" + postData; } else { url += "?" + postData; } } Uri uri = new Uri(url); request = (HttpWebRequest)System.Net.WebRequest.Create(uri); request.Credentials = CredentialCache.DefaultCredentials; request.CookieContainer = new CookieContainer(); if (IgnoreCookies == false) { request.CookieContainer.GetCookies(uri); } if (Cookies != null) { request.CookieContainer.Add(this.Cookies); } if (Proxy != null) { request.Proxy = Proxy; } if (Timeout > 0) { request.Timeout = Timeout; } if (url.StartsWith("https://") == true) { ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); } request.UserAgent = WebInfo.Useragent; request.Accept = WebInfo.RequestAccept; request.Headers.Add(HttpRequestHeader.AcceptLanguage, WebInfo.AcceptLanguage); request.Headers.Add(HttpRequestHeader.AcceptEncoding, WebInfo.AcceptEncoding); request.Headers.Add(HttpRequestHeader.AcceptCharset, WebInfo.AcceptCharset); request.Headers.Add(HttpRequestHeader.KeepAlive, WebInfo.KeepAlive.ToString()); foreach (KeyValuePair <string, string> pair in AdditionalHeader) { request.Headers.Add(pair.Key, pair.Value); } request.Referer = UrlReferer; request.KeepAlive = true; request.Method = Type.ToString().ToUpper(); request.AllowAutoRedirect = AutoRedirect; ServicePointManager.Expect100Continue = false; // sonst error if (Type == PostTypeEnum.Post) { request.ContentType = "application/x-www-form-urlencoded"; if (postData.Length > 0) { UTF8Encoding encoding = new UTF8Encoding(); byte[] requestBuf = encoding.GetBytes(postData); request.ContentLength = requestBuf.Length; try { Stream writeStream = request.GetRequestStream(); writeStream.Write(requestBuf, 0, requestBuf.Length); writeStream.Close(); } catch { } } else { request.ContentLength = 0; } } try { using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { result = new PostResult(response); } } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e); result = null; } return(result); }