zoukankan      html  css  js  c++  java
  • POST 模拟登陆

    [cpp]
    1. // 模拟登陆115网盘  
    2. #include <afxinet.h> // 包含相关的头文件  
    3.   
    4.   
    5. /* 用抓包工具抓包可得到需要提交的数据,然后模拟提交即可。 
    6. *(有的时候需要得到cookie信息,你可以使用CInternetSession::GetCookie()函数得到该cookie信息)*/  
    [cpp]
    1. try  
    2.  {  
    3. #define MAX_COUNT 1024  
    4.   CInternetSession session(_T("session"));  
    5.   INTERNET_PORT nPort = 80;  
    6.   CHttpConnection* pHttpConnect = session.GetHttpConnection(_T("passport.115.com"), nPort);  
    7.   if(pHttpConnect)  
    8.   {  
    9.    CHttpFile* pFile = pHttpConnect->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T("/?ac=login"));  
    10.    if(pFile)  
    11.    {  
    12.     // 这里是请求头信息,由抓包工具得到该信息  
    13.     pFile->AddRequestHeaders(_T("POST /?ac=login HTTP/1.1"));  
    14.     pFile->AddRequestHeaders(_T("Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*"));  
    15.     pFile->AddRequestHeaders(_T("Referer: http://passport.115.com/?ac=login&goto=http%3A%2F%2Fu.115.com%2F%3Fac%3Dmy"));  
    16.     pFile->AddRequestHeaders(_T("Accept-Language: zh-cn"));  
    17.     pFile->AddRequestHeaders(_T("User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; EasyBits GO v1.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)"));  
    18.     pFile->AddRequestHeaders(_T("Content-Type: application/x-www-form-urlencoded"));  
    19.     pFile->AddRequestHeaders(_T("Accept-Encoding: gzip, deflate"));  
    20.     pFile->AddRequestHeaders(_T("Host: passport.115.com"));  
    21.     pFile->AddRequestHeaders(_T("Connection: Keep-Alive"));  
    22.     pFile->AddRequestHeaders(_T("Cache-Control: no-cache"));      
    23. // 这里是要提交的数据。说明一下: xxxx@xx.xxx指的是登陆的邮箱的地址,后面的XXXXXXX表示的是登陆的密码,使用的时候换成你自己的即可  
    24.     TCHAR szRequest[MAX_COUNT] = _T("login%5Baccount%5D=xxxx@xx.xxx&login%5Bpasswd%5D=XXXXXXX&goto=http%3A%2F%2Fu.115.com%2F%3Fac%3Dmy");  
    25.     pFile->SendRequest(NULL, 0, szRequest, _tcslen(szRequest)+1);  
    26.       
    27.     CString strStatus(_T(""));  
    28.     if(pFile->QueryInfo(HTTP_QUERY_RAW_HEADERS_CRLF, strStatus))  
    29.     {  
    30.      AfxMessageBox(strStatus);  
    31.     }  
    32.     pFile->Close();  
    33.     delete pFile;  
    34.     pFile = NULL;  
    35.    }  
    36.   }  
    37.   pHttpConnect->Close();  
    38.   delete pHttpConnect;  
    39.   pHttpConnect =NULL;  session.Close();  
    40.  }  
    41.  catch (CInternetException* e)  
    42.  {  
    43.   e->ReportError();  
    44.   e->Delete();  
    45.  } 
  • 相关阅读:
    Windows Internals 笔记——作业
    Windows Internals 笔记——终止进程
    数据结构与算法-java-数组实现队列和栈
    数据结构与算法-java-稀疏数组
    学习笔记-java两种核心机制-JVM和GC
    python-Django-学习笔记
    python爬虫-大二时候的学习笔记
    KMP算法
    Docker
    排序与查找
  • 原文地址:https://www.cnblogs.com/rollrock/p/2339011.html
Copyright © 2011-2022 走看看