HTTP跨域调用-传入URL就直接返回回来数据
来源:互联网 发布:windows update有用吗 编辑:程序博客网 时间:2024/06/05 10:32
方法有点多,我自己都看不下去了··· 只记得以前调用过 有兴趣的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
- HTTP跨域调用-传入URL就直接返回回来数据
- HTTP请求url返回数据
- (安全跨域)java.net.url实现后台发出http请求并返回数据
- 调用webservice,3秒调不通就直接返回
- 根据传入url请求,返回json字符串
- 向指定 URL 发送GET,POST方法的请求(传入指定url和参数,服务器返回字符串数据)
- 通过HTTP方式获取URL返回结果数据(Java)
- 直接使用Sublime Text实现:HTTP访问URL+格式化返回的JSON字符串
- 直接使用Sublime Text实现:HTTP访问URL+格式化返回的JSON字符串
- JAVA如何调用对方http接口得到返回数据
- nodejs获取http请求的传入数据
- 通过HTTP API 向InfluxDB传入数据
- http-url数据发送
- Http常见返回数据
- jquery ajax再次封装,前台调用后台java方法直接返回数据
- unity调用ios的参数传入与返回
- 读取URL返回的数据
- HttpWebRequest请求url返回数据
- Material Design之SwipeToRefresh下拉刷新
- .net mvc
- HTML5 中的 Web SQL Database 来构建应用程序
- Java实现查找树(BST,AVL,BTree,Trie)
- Linux 常用命令的使用
- HTTP跨域调用-传入URL就直接返回回来数据
- Struts2中action访问路径配置
- 上传iTunes的Bug
- mac上配置环境变量
- java.lang.OutOfMemoryError: PermGen space的解决方法
- WebDriver常见异常
- 数组名是指针常量
- 数据字典缓存解决方案
- 读书笔记之c和指针(4)