Added: get head response for HttpWeb

This commit is contained in:
Ray 2020-01-30 12:35:05 +00:00
parent 51a3dde03e
commit 9de46a158b

View File

@ -6,163 +6,208 @@ using System.Windows.Forms;
namespace RyzStudio.Net
{
public class HttpWeb
{
public string defaultUserAgent = "Momozilla/5.0 (" + Environment.OSVersion.Platform.ToString() + " ; " + Environment.OSVersion.VersionString + "; " + Application.CurrentCulture.TwoLetterISOLanguageName + ")";
public int defaultTimeout = 6000;
public int defaultMaxRedirect = 8;
public bool defaultAllowRedirect = true;
public CookieContainer defaultCookierContainer = null;
public class HttpWeb
{
public string defaultUserAgent = "Momozilla/5.0 (" + Environment.OSVersion.Platform.ToString() + " ; " + Environment.OSVersion.VersionString + "; " + Application.CurrentCulture.TwoLetterISOLanguageName + ")";
public int defaultTimeout = 6000;
public int defaultMaxRedirect = 8;
public bool defaultAllowRedirect = true;
public CookieContainer defaultCookierContainer = null;
public HttpWeb()
{
}
public HttpWeb()
{
}
public HttpWebRequest CreateRequest(string url)
{
return this.CreateRequest(url, url);
}
public HttpWebRequest CreateRequest(string requestURL) => this.CreateRequest(requestURL, requestURL);
public HttpWebRequest CreateRequest(string url, string referrerURL)
{
if (defaultCookierContainer == null)
{
defaultCookierContainer = new CookieContainer();
}
public HttpWebRequest CreateRequest(string requestURL, string referrerURL)
{
if (defaultCookierContainer == null)
{
defaultCookierContainer = new CookieContainer();
}
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
webRequest.MaximumAutomaticRedirections = defaultMaxRedirect;
webRequest.CookieContainer = defaultCookierContainer;
webRequest.UserAgent = defaultUserAgent;
webRequest.AllowAutoRedirect = defaultAllowRedirect;
webRequest.Timeout = defaultTimeout;
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(requestURL);
webRequest.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
webRequest.MaximumAutomaticRedirections = defaultMaxRedirect;
webRequest.CookieContainer = defaultCookierContainer;
webRequest.UserAgent = defaultUserAgent;
webRequest.AllowAutoRedirect = defaultAllowRedirect;
webRequest.Timeout = defaultTimeout;
webRequest.Referer = referrerURL;
return webRequest;
}
return webRequest;
}
public int GetResponse(out string sourceCode, string url, string referrerURL = "")
{
HttpWebRequest webRequest = this.CreateRequest(url, referrerURL);
public int GetResponse(out string sourceCode, string requestURL) => this.GetResponse(out sourceCode, this.CreateRequest(requestURL));
return GetResponse(out sourceCode, webRequest);
}
public int GetResponse(out string sourceCode, string requestURL, string referrerURL) => this.GetResponse(out sourceCode, this.CreateRequest(requestURL, referrerURL));
public int GetResponse(out string sourceCode, HttpWebRequest webRequest)
{
sourceCode = string.Empty;
public int GetResponse(out string sourceCode, HttpWebRequest webRequest)
{
sourceCode = string.Empty;
int rv = 0;
int rv = 0;
try
{
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
try
{
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
rv = (int)webResponse.StatusCode;
rv = (int)webResponse.StatusCode;
StreamReader readContent = new StreamReader(webResponse.GetResponseStream());
sourceCode = readContent.ReadToEnd();
StreamReader readContent = new StreamReader(webResponse.GetResponseStream());
sourceCode = readContent.ReadToEnd();
webResponse.Close();
webResponse = null;
}
catch (WebException xc)
{
if (xc.Response is HttpWebResponse)
{
HttpWebResponse rs = xc.Response as HttpWebResponse;
StreamReader readContent = new StreamReader(rs.GetResponseStream());
if (readContent != null)
{
sourceCode = readContent.ReadToEnd();
}
webResponse.Close();
webResponse = null;
}
catch (WebException xc)
{
if (xc.Response is HttpWebResponse)
{
HttpWebResponse rs = xc.Response as HttpWebResponse;
StreamReader readContent = new StreamReader(rs.GetResponseStream());
if (readContent != null)
{
sourceCode = readContent.ReadToEnd();
}
rv = (int)rs.StatusCode;
}
else
{
rv = (int)xc.Status;
sourceCode = xc.Message;
}
}
catch (Exception xc)
{
sourceCode = xc.Message;
}
rv = (int)rs.StatusCode;
}
else
{
rv = (int)xc.Status;
sourceCode = xc.Message;
}
}
catch (Exception xc)
{
sourceCode = xc.Message;
}
return rv;
}
return rv;
}
public int GetResponse(out HttpWebRequest webRequest, out string sourceCode, string requestURL) => this.GetResponse(out webRequest, out sourceCode, requestURL, requestURL, true);
public static HttpWebRequest AddBasicAuthentication(HttpWebRequest webRequest, string username, string password)
{
webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(string.Concat(username, ":", password)));
webRequest.PreAuthenticate = true;
public int GetResponse(out HttpWebRequest webRequest, out string sourceCode, string requestURL, bool allowAutoRedirect) => this.GetResponse(out webRequest, out sourceCode, requestURL, requestURL, allowAutoRedirect);
return webRequest;
}
public int GetResponse(out HttpWebRequest webRequest, out string sourceCode, string requestURL, string referrerURL) => this.GetResponse(out webRequest, out sourceCode, requestURL, referrerURL, true);
public int GetResponse(out HttpWebRequest webRequest, out string sourceCode, string requestURL, string referrerURL, bool allowAutoRedirect)
{
webRequest = this.CreateRequest(requestURL, referrerURL);
webRequest.AllowAutoRedirect = allowAutoRedirect;
public int GetPOSTResponse(out string sourceCode, HttpWebRequest webRequest, string postData)
{
sourceCode = "";
int rv = 0;
byte[] buffer = Encoding.UTF8.GetBytes(postData);
return this.GetResponse(out sourceCode, webRequest);
}
webRequest.ContentLength = buffer.Length;
public int GetHEADResponse(string requestURL) => this.GetHEADResponse(requestURL, requestURL, true);
try
{
Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(buffer, 0, buffer.Length);
dataStream.Close();
}
catch (Exception xc)
{
sourceCode = xc.Message;
return rv;
}
public int GetHEADResponse(string requestURL, string referrerURL) => this.GetHEADResponse(requestURL, requestURL, true);
return this.GetResponse(out sourceCode, webRequest);
}
public int GetHEADResponse(string requestURL, bool allowAutoRedirect) => this.GetHEADResponse(requestURL, requestURL, allowAutoRedirect);
public int GetHeader(out WebHeaderCollection headerCollection, string url, string referrerURL = "")
{
headerCollection = null;
public int GetHEADResponse(string requestURL, string referrerURL, bool allowAutoRedirect)
{
HttpWebRequest webRequest = this.CreateRequest(requestURL, referrerURL);
webRequest.Method = "HEAD";
webRequest.AllowAutoRedirect = allowAutoRedirect;
int rv = 0;
string sc;
int rc = this.GetResponse(out sc, webRequest);
HttpWebRequest webRequest = this.CreateRequest(url, referrerURL);
webRequest.Method = "HEAD";
return rc;
}
try
{
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
headerCollection = webResponse.Headers;
public int GetHEADResponse(out HttpWebRequest webRequest, string requestURL) => this.GetHEADResponse(out webRequest, requestURL, requestURL, true);
rv = (int)webResponse.StatusCode;
public int GetHEADResponse(out HttpWebRequest webRequest, string requestURL, string referrerURL) => this.GetHEADResponse(out webRequest, requestURL, referrerURL, true);
webResponse.Close();
webResponse = null;
}
catch (WebException xc)
{
if (xc.Response is HttpWebResponse)
{
HttpWebResponse rs = xc.Response as HttpWebResponse;
public int GetHEADResponse(out HttpWebRequest webRequest, string requestURL, bool allowAutoRedirect) => this.GetHEADResponse(out webRequest, requestURL, requestURL, allowAutoRedirect);
rv = (int)rs.StatusCode;
}
else
{
rv = (int)xc.Status;
}
}
catch (Exception xc)
{
// do nothing
}
public int GetHEADResponse(out HttpWebRequest webRequest, string requestURL, string referrerURL, bool allowAutoRedirect)
{
webRequest = this.CreateRequest(requestURL, referrerURL);
webRequest.Method = "HEAD";
webRequest.AllowAutoRedirect = allowAutoRedirect;
return rv;
}
}
string sc;
int rc = this.GetResponse(out sc, webRequest);
return rc;
}
public int GetPOSTResponse(out string sourceCode, HttpWebRequest webRequest, string postData)
{
sourceCode = string.Empty;
int rv = 0;
byte[] buffer = Encoding.UTF8.GetBytes(postData);
webRequest.ContentLength = buffer.Length;
try
{
Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(buffer, 0, buffer.Length);
dataStream.Close();
}
catch (Exception xc)
{
sourceCode = xc.Message;
return rv;
}
return this.GetResponse(out sourceCode, webRequest);
}
public int GetHeader(out WebHeaderCollection headerCollection, string url, string referrerURL = "")
{
headerCollection = null;
int rv = 0;
HttpWebRequest webRequest = this.CreateRequest(url, referrerURL);
webRequest.Method = "HEAD";
try
{
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
headerCollection = webResponse.Headers;
rv = (int)webResponse.StatusCode;
webResponse.Close();
webResponse = null;
}
catch (WebException xc)
{
if (xc.Response is HttpWebResponse)
{
HttpWebResponse rs = xc.Response as HttpWebResponse;
rv = (int)rs.StatusCode;
}
else
{
rv = (int)xc.Status;
}
}
catch (Exception xc)
{
// do nothing
}
return rv;
}
public static HttpWebRequest AddBasicAuthentication(HttpWebRequest webRequest, string username, string password)
{
webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(string.Concat(username, ":", password)));
webRequest.PreAuthenticate = true;
return webRequest;
}
}
}