分享

不懂html也来学网抓(xmlhttp/winhttp fiddler)三

 清纯宝贝 2018-02-04
登录之后可以做什么----发送数据上一贴说的是登录后查看邮件。这次来试一次发送邮件。手工登录、发送邮件,同时抓包。截取发送邮件内容的部分字符串作为搜索文本,找到session。拷贝Request里相关内容,编写代码:Sub Main()    Const Username As String = 'vbatest'    Const Password As String = '12341234'    Const Account As String = 'vbatest@163.com'    Const ToAccount As String = 'wcymiss@163.com'    Const Subject As String = '主题:用web发送邮件'    Const Content As String = '正文:看到此邮件则证明发送成功'    Dim strText As String    Dim Sid As String    Dim Senddata        With CreateObject('MSXML2.XMLHTTP')        .Open 'POST', 'https://mail.163.com/entry/cgi/ntesdoor?df=mail163_letter&funcid=loginone&iframe=1&passtype=1&product=mail163&race=63_31_31_gz&uid=' & Username & '@163.com', False        .setrequestheader 'Content-Type', 'application/x-www-form-urlencoded'        .Send 'username=' & Username & '&password=' & Password       Sid = Split(Split(.responsetext, 'sid=')(1), '&')(0)                .Open 'POST', 'http://mail.163.com/js6/s?sid=' & Sid & '&func=mbox:compose&FrameMasterMailPopupClose=1&cl_send=2&l=compose&action=deliver', False        .setrequestheader 'Content-Type', 'application/x-www-form-urlencoded'        .setrequestheader 'Accept', 'text/javascript' '不加这句的话返回的不是json是xml数据       Senddata = 'var=' & encodeURI('' _            & '' _            & 'c:' & GetLongTime() & '' _            & '' _            & '' & Account & '' _            & 'false' _            & '' & ToAccount & '' _            & '' _            & '' & Subject & '' _            & 'true' _            & '' & Content & '' _            & '3' _            & 'true' _            & 'GBK' _            & 'false' _            & 'deliver' _            & '1048576' _            & '')        .Send Senddata       Debug.Print .responsetext    End WithEnd SubFunction encodeURI(strTobecoded As String) As String    With CreateObject('msscriptcontrol.scriptcontrol')        .Language = 'JavaScript'       encodeURI = .eval('encodeURIComponent('' & strTobecoded & '');')    End WithEnd FunctionFunction GetLongTime()    With CreateObject('msscriptcontrol.scriptcontrol')        .Language = 'JavaScript'       GetLongTime = .eval('new Date().getTime();')    End WithEnd Function复制代码SendData里有部分参数还可以精简。有兴趣的话可以自己测试。GetLongTime自定义函数的作用是产生一个国际通用的表示当前时间的13位数字。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多