您的位置:首页 > 理论基础 > 计算机网络

HTTP跨域调用-传入URL就直接返回回来数据

2015-08-07 15:37 627 查看
方法有点多,我自己都看不下去了···

只记得以前调用过 有兴趣的TX可以仔细研究研究

#region-------------------HTTP跨域调用,传入URL就直接返回回来数据。有单独的类---------

protected CookieContainer cookies = new CookieContainer();

protected Random _random = new Random();

private int defer = 1000;

public string doGetString(string url)

{

return doGetString(url, Encoding.UTF8);

}

public string doGetString(string url, string Referer)

{

return doGetString(url, Encoding.UTF8, Referer);

}

public string doGetString(string url, Encoding endcoding)

{

WebResponse response = doGet(url);

StreamReader reader = new StreamReader(response.GetResponseStream(), endcoding);

string str = reader.ReadToEnd();

reader.Close();

response.Close();

return str;

}

public string doGetString(string url, Encoding endcoding, string Referer)

{

WebResponse response = doGet(url, Referer);

StreamReader reader = new StreamReader(response.GetResponseStream(), endcoding);

string str = reader.ReadToEnd();

reader.Close();

response.Close();

return str;

}

public string doPostString(string url, Dictionary<string, string> list, string referer)

{

WebResponse response = doPost(url, GetParamString(list), referer, new Dictionary<string, string>());

StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

string str = reader.ReadToEnd();

reader.Close();

response.Close();

return str;

}

private string GetParamString(Dictionary<string, string> list)

{

StringBuilder sParam = new StringBuilder(256);

Encoding encode = Encoding.GetEncoding("GB2312");

foreach (KeyValuePair<string, string> oKey in list)

{

sParam.Append(HttpUtility.UrlEncode(oKey.Key, encode) + "=" + HttpUtility.UrlEncode(oKey.Value, encode) + "&");

}

return sParam.ToString();

}

public WebResponse doGet(string url, string Referer)

{

WebResponse response;

try

{

GC.Collect();

Thread.Sleep(1000);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + GetRondomQueryString(url));

request.CookieContainer = this.cookies;

request.Method = "GET";

request.Referer = Referer;

request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application,
application/x-silverlight-2-b2, application/x-silverlight, application/x-shockwave-flash, */*";

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";

request.Headers.Add("UA-CPU", "x86");

request.Headers.Add("x-flash-version", "10,0,12,36");

response = request.GetResponse();

}

catch (Exception exception)

{

throw exception;

}

return response;

}

private string GetRondomQueryString(string url)

{

string[] allCharArray = { "AA", "BB", "CC", "DD", "EE", "FF", "GG", "HH", "JJ", "KK", "LL", "MM", "NN", "PP", "QQ", "RR", "SS", "TT", "UU", "VV", "WW", "XX", "YY", "ZZ" };

int index = _random.Next(allCharArray.Length);

string ch = null;

if (url.LastIndexOf("?") > -1)

{

ch = "&";

}

else

{

ch = "?";

}

string query = ch + allCharArray[index] + "=" + _random.NextDouble();

return query;

}

public WebResponse doGet(string url)

{

WebResponse response;

try

{

GC.Collect();

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + GetRondomQueryString(url));

request.CookieContainer = this.cookies;

request.Method = "GET";

request.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application,
application/x-silverlight-2-b2, application/x-silverlight, application/x-shockwave-flash, */*";

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)";

request.Headers.Add("UA-CPU", "x86");

request.Headers.Add("x-flash-version", "10,0,12,36");

response = request.GetResponse();

}

catch (Exception exception)

{

throw exception;

}

return response;

}

public WebResponse doPost(string url, string postData)

{

WebResponse response;

try

{

GC.Collect();

byte[] bytes = Encoding.UTF8.GetBytes(postData);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";

request.Accept = "application/x-shockwave-flash, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*";

request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; CIBA)";

request.CookieContainer = this.cookies;

Stream requestStream = request.GetRequestStream();

requestStream.Write(bytes, 0, bytes.Length);

requestStream.Close();

response = request.GetResponse();

}

catch (Exception exception)

{

throw exception;

}

return response;

}

public WebResponse doPost(string url, string postData, string referer, Dictionary<string, string> list)

{

WebResponse response;

try

{

GC.Collect();

byte[] bytes = Encoding.UTF8.GetBytes(postData);

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";

if (list != null)

{

foreach (KeyValuePair<string, string> i in list)

{

request.Headers.Add(i.Key, i.Value);

}

}

request.Headers.Add("Accept-Language", "zh-CN");

request.Accept = "text/html, application/xhtml+xml, */*";

request.Headers.Add("Cache-Control", "no-cache");

request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)";

request.CookieContainer = this.cookies;

Stream requestStream = request.GetRequestStream();

requestStream.Write(bytes, 0, bytes.Length);

requestStream.Close();

response = request.GetResponse();

}

catch (Exception exception)

{

throw exception;

}

return response;

}

#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: