一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

2021-12-31 13:40道.玄 C#

這篇文章主要為大家詳細介紹了C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄,具有一定的參考價值,感興趣的小伙伴們可以參考一下

模擬藝龍旅游網登錄,供大家參考,具體內容如下

想模擬登錄,首先整理一下流程

1.通過360瀏覽器(ie,火狐等等)f12開發人員工具抓到相關數據

2.獲取驗證碼(拿到cookie),登錄時也需要使用

3.登錄

f12調出開發人員工具,輸入用戶名,密碼登錄,看我們抓到了什么信息。

C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

request url:這個就是登錄請求的url 
https://secure.elong.com/passport/ajax/elonglogin

方式post
form data:這個是我們要post傳輸的數據:

username=xzdylyh&passwd=12313&validatecode=驗證碼&rememberme=false

其它一些重要信息在request headers中

*****************************************************************

我使用c# 設計的winform界面

C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

復制代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.web;
using system.net;
using system.io;
using system.data;
namespace httphelper
{
  public class elogn_login
  {
 
    public static cookiecontainer container = null; //存儲驗證碼cookie
 
    #region 登錄
    public string requestm(string uname,string passwd,string vaildate)
    {
      httpwebrequest request = null;
      httpwebresponse response = null;
      try
      {
        request = (httpwebrequest)httpwebrequest.create("https://secure.elong.com/passport/ajax/elonglogin");
        request.method = "post";
        request.contenttype = "application/x-www-form-urlencoded; charset=utf-8";
        request.useragent = "mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/45.0.2454.101 safari/537.36";
        request.allowautoredirect = true;
        request.cookiecontainer = container;//獲取驗證碼時候獲取到的cookie會附加在這個容器里面
        request.keepalive = true;//建立持久性連接
        //整數據
        string postdata = string.format("username={0}&passwd={1}&validatecode={2}&rememberme=true", uname, passwd, vaildate);
        asciiencoding encoding = new asciiencoding();
        byte[] bytepostdata = encoding.getbytes(postdata);
        request.contentlength = bytepostdata.length;
 
        //發送數據 using結束代碼段釋放
        using (stream requeststm = request.getrequeststream())
        {
          requeststm.write(bytepostdata, 0, bytepostdata.length);
        }
 
        //響應
        response = (httpwebresponse)request.getresponse();
        string text = string.empty;
        using (stream responsestm = response.getresponsestream())
        {
          streamreader redstm = new streamreader(responsestm, encoding.utf8);
          text = redstm.readtoend();
        }
 
        return text;
      }
      catch (exception ex)
      {
        var msg = ex.message;
        return msg;
      }
 
    }
    #endregion
 
    #region 獲取驗證碼
    public stream getcodestream(string codeurl)
    {
 
      //驗證碼請求
      httpwebrequest request = (httpwebrequest)webrequest.create(codeurl);
      request.method = "get";
      request.contenttype = "application/x-www-form-urlencoded";
      request.useragent = "mozilla/5.0 (windows nt 6.1; wow64; rv:5.0.1) gecko/20100101 firefox/5.0.1";
      request.accept = "image/webp,*/*;q=0.8";
      request.cookiecontainer = new cookiecontainer();//!very important.!!!
      container = request.cookiecontainer;
      var c = request.cookiecontainer.getcookies(request.requesturi);
      httpwebresponse response = (httpwebresponse)request.getresponse();
      response.cookies = container.getcookies(request.requesturi);
     
     stream stream = response.getresponsestream();
     return stream;
    }
  }
    #endregion
}
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.threading.tasks;
using system.windows.forms;
using system.io;
using httphelper;
namespace windowsformsapplication8
{
  public partial class elong_login_form : form
  {
    public elong_login_form()
    {
      initializecomponent();
    }
 
    private void button1_click(object sender, eventargs e)
    {
      
      elogn_login elonglogin = new elogn_login();
      
      var rmsg = elonglogin.requestm(txtusername.text,txtpassword.text,txtvaildata.text);
      messagebox.show(rmsg);
    }
 
    private void elong_login_form_load(object sender, eventargs e)
    {
      reflshpicimage();//更新驗證碼
    }
 
    //更新驗證碼
    public void reflshpicimage()
    {
      string codeurl = "https://secure.elong.com/passport/getvalidatecode";
      elogn_login agent = new elogn_login();
      stream stmimage = agent.getcodestream(codeurl);
      picvalidate.image = image.fromstream(stmimage);
    }
 
    private void btnrevalidate_click(object sender, eventargs e)
    {
      reflshpicimage();//更新驗證碼
    }
 
    private void picvalidate_click(object sender, eventargs e)
    {
      reflshpicimage();//更新驗證碼
    }
  }
}

最后執行效果,登錄的session已經成功返回。

C#使用HttpWebRequest與HttpWebResponse模擬用戶登錄

延伸 · 閱讀

精彩推薦
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
主站蜘蛛池模板: 亚洲国产精品久久精品怡红院 | 特级www | 毛片免费全部免费观看 | 暖暖 免费 高清 中文 日本 | 国产精品福利 | 欧美亚洲国产精品久久第一页 | 久久久精品日本一区二区三区 | 精品国产乱码久久久久久人妻 | 国产福利一区二区精品视频 | 四虎永久网址影院 | 亚洲精品中文字幕久久久久久 | 欧美丝袜videohd | 私人影院在线播放 | 免费观看在线永久免费xx视频 | 国产精品久久久久影视不卡 | 日本大尺度动漫在线观看缘之空 | 亚洲精品国产精品麻豆99 | 99视频久久精品久久 | 闺蜜高h | 91麻豆精品国产自产在线 | 极品丝袜老师h系列全文阅读 | 天天狠天天透天干天天怕处 | 久久99精国产一区二区三区四区 | 日本一卡=卡三卡免费 | 亚洲2卡三卡4卡5卡精品 | 大象传媒短视频网站 | julia ann黑人巨大 | 国产免费一区不卡在线 | 九九99亚洲精品久久久久 | www在线视频在线播放 | 日本韩国一区二区三区 | 亚洲国产日韩成人综合天堂 | 日韩精品在线视频观看 | 范冰冰特黄xx大片 | 99re8在线精品视频免费播放 | 网站视频免费 | 天堂a免费视频在线观看 | 国产精品视频播放 | 动漫美女日批 | 国产精品资源站 | chinese男男gayxxx|