国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

基于WebClient實現Http協議的Post與Get對網站進行模擬登陸和瀏覽實例

2019-10-29 21:45:32
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了基于WebClient實現Http協議的Post與Get對網站進行模擬登陸和瀏覽的方法,以實例形式詳細分析了WebClient模擬POST與GET登陸與瀏覽的過程,對于C#項目開發來說具有不錯的參考借鑒價值,需要的朋友可以參考下
 

本文實例講述了基于WebClient實現Http協議的Post與Get對網站進行模擬登陸和瀏覽的方法。分享給大家供大家參考。具體分析如下:

一、問題:

我們在一些場合經常需要模擬瀏覽器進行一些操作,比如模擬投票,或者模擬點擊,或者Web游戲外掛。

二、解決方法:

C#中封裝好的WebClient可以在某些要求不算高的場景實現Http的Post和Get。具體請見如下代碼:

復制代碼代碼如下:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Net;

 

namespace TestCNM 

    public class WebClientExt 
    { 
        public string Get(string Url,string Referer, Encoding Encoder,ref string CookieStr) 
        { 
            string result = ""; 
 
            WebClient myClient = new WebClient(); 
            myClient.Headers.Add("Accept: */*"); 
            myClient.Headers.Add("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0E; .NET4.0C; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; SE 2.X MetaSr 1.0)"); 
            myClient.Headers.Add("Accept-Language: zh-cn"); 
            myClient.Headers.Add("Content-Type: multipart/form-data"); 
            myClient.Headers.Add("Accept-Encoding: gzip, deflate"); 
            myClient.Headers.Add("Cache-Control: no-cache"); 
            if (CookieStr != "") 
            { 
                myClient.Headers.Add(CookieStr); 
            } 
            myClient.Encoding = Encoder; 
            result = myClient.DownloadString(Url); 
            if (CookieStr == "") 
            { 
                CookieStr = myClient.ResponseHeaders["Set-Cookie"].ToString(); 
                CookieStr = GetCookie(CookieStr); 
            } 
            return result; 
        } 
        public string Post(string Url, string Referer, Encoding Encoder, ref string CookieStr, string Data) 
        { 
            string result = ""; 
 
            WebClient myClient = new WebClient(); 
            myClient.Headers.Add("Accept: */*"); 
            myClient.Headers.Add("User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET4.0E; .NET4.0C; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; SE 2.X MetaSr 1.0)"); 
            myClient.Headers.Add("Accept-Language: zh-cn"); 
            myClient.Headers.Add("Content-Type: multipart/form-data"); 
            myClient.Headers.Add("Accept-Encoding: gzip, deflate"); 
            myClient.Headers.Add("Cache-Control: no-cache"); 
            if (CookieStr != "") 
            { 
                myClient.Headers.Add(CookieStr); 
            } 
            myClient.Encoding = Encoder; 
            result = myClient.UploadString(Url, Data); 
            if (CookieStr == "") 
            { 
                CookieStr = myClient.ResponseHeaders["Set-Cookie"].ToString(); 
                CookieStr = GetCookie(CookieStr); 
            } 
            return result; 
        } 
        private string GetCookie(string CookieStr) 
        { 
            string result = ""; 
 
            string[] myArray = CookieStr.Split(','); 
            if (myArray.Count() > 0) 
            { 
                result = "Cookie: "; 
                foreach (var str in myArray) 
                { 
                    string[] CookieArray = str.Split(';'); 
                    result += CookieArray[0].Trim(); 
                    result += "; "; 
                } 
                result = result.Substring(0, result.Length - 2); 
            } 
            return result; 
        } 
    } 
}

 

希望本文所述對大家的C#程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四会市| 乌拉特后旗| 三亚市| 靖江市| 大同市| 海兴县| 舒城县| 阿尔山市| 望江县| 阿鲁科尔沁旗| 南宫市| 惠来县| 丰都县| 古交市| 荃湾区| 京山县| 阿拉善盟| 时尚| 景谷| 陕西省| 临泽县| 昭苏县| 谷城县| 嘉祥县| 浪卡子县| 明光市| 宁国市| 南康市| 保亭| 上高县| 虹口区| 泽库县| 峡江县| 廊坊市| 清远市| 东城区| 永济市| 闵行区| 民权县| 丰都县| 武强县|