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

0 0
原创粉丝点击