zl程序教程

您现在的位置是:首页 >  后端

当前栏目

基于WebClient实现Http协议的Post与Get对网站进行模拟登陆和浏览实例

实例模拟HTTP协议网站 实现 基于 进行
2023-06-13 09:15:30 时间

本文实例讲述了基于WebClient实现Http协议的Post与Get对网站进行模拟登陆和浏览的方法。分享给大家供大家参考。具体分析如下:

一、问题:

我们在一些场合经常需要模拟浏览器进行一些操作,比如模拟投票,或者模拟点击,或者Web游戏外挂。

二、解决方法:

C#中封装好的WebClient可以在某些要求不算高的场景实现Http的Post和Get。具体请见如下代码:

复制代码代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Net;

namespaceTestCNM
{
   publicclassWebClientExt
   {
       publicstringGet(stringUrl,stringReferer,EncodingEncoder,refstringCookieStr)
       {
           stringresult="";
 
           WebClientmyClient=newWebClient();
           myClient.Headers.Add("Accept:*/*");
           myClient.Headers.Add("User-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;.NET4.0E;.NET4.0C;InfoPath.2;.NETCLR2.0.50727;.NETCLR3.0.04506.648;.NETCLR3.5.21022;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;SE2.XMetaSr1.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);
           }
           returnresult;
       }
       publicstringPost(stringUrl,stringReferer,EncodingEncoder,refstringCookieStr,stringData)
       {
           stringresult="";
 
           WebClientmyClient=newWebClient();
           myClient.Headers.Add("Accept:*/*");
           myClient.Headers.Add("User-Agent:Mozilla/4.0(compatible;MSIE7.0;WindowsNT5.1;Trident/4.0;.NET4.0E;.NET4.0C;InfoPath.2;.NETCLR2.0.50727;.NETCLR3.0.04506.648;.NETCLR3.5.21022;.NETCLR3.0.4506.2152;.NETCLR3.5.30729;SE2.XMetaSr1.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);
           }
           returnresult;
       }
       privatestringGetCookie(stringCookieStr)
       {
           stringresult="";
 
           string[]myArray=CookieStr.Split(",");
           if(myArray.Count()>0)
           {
               result="Cookie:";
               foreach(varstrinmyArray)
               {
                   string[]CookieArray=str.Split(";");
                   result+=CookieArray[0].Trim();
                   result+=";";
               }
               result=result.Substring(0,result.Length-2);
           }
           returnresult;
       }
   }
}

希望本文所述对大家的C#程序设计有所帮助。