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
只记得以前调用过 有兴趣的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
相关文章推荐
- HttpClient异步调用WEB服务
- C++ http socket 文件上传和下载 FILE写文件失败
- TCP状态转换图详解
- TCP学习(1)--报文段首部格式
- http和socket之长连接和短连接区别
- python网络爬虫抓取ajax动态网页数据:以抓取KFC门店地址为例
- 协议森林08 不放弃 (TCP协议与流通信)
- http协议理解
- Chocolate 网络流解法
- 使用apache搭建http文件服务器
- 【VMCloud云平台】SCVMM进阶篇(一)网络虚拟化(1)
- Android 网络通信框架Volley简介(Google IO 2013)
- 【linux高级程序设计】(第十六章)网络服务器应用设计
- UNIX网络编程卷一:第五章 TCP客户/服务器程序实例
- tcpdump
- Qt PC 安卓 tcp传输文件
- HDU 5000 Clone (2014年鞍山赛区网络赛D题)
- Http请求之HttpClient + AsyncTask异步请求
- HttpURLConnection 提交表单+ 上传文件
- 完美网络