要真的是有密钥,不知道生成规则就无解了 回复 3# pusofalse
第3天继续等待!继续关注! 回复 1# qq123123
P版对错误字很反感的! {:face (229):} 支持下,看来楼主也是au3爱好者! 第4天继续关注 测试一下:
LZ没对另有一个帖子作出回复,所以这个正常的话给源码,不正常就算了。 回复 21# republican
脚本测试正常,请发源代码!谢谢! 回复 22# qq123123 #include <WinHttp_GetRespond.au3>
#include <array.au3>
$MyOpen=_WinHttpOpen()
$TelNumber = InputBox("请输入用户名","请输入用户名")
$rContext=_WinHTTP_GetRespond($MyOpen,"http://mail.10086.cn/Register/default.aspx",0,2)
$ViewValue=StringRegExp(BinaryToString($rContext),'<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="(.*?)" />',3)
If @error Then MsgBox(48,"Error","Error")
$Cookies=StringRegExpReplace($rContext,"(.+); path=/.*","$1")
$ViewValue=$ViewValue
$context="__EVENTTARGET=subSendMsm&__EVENTARGUMENT=&__VIEWSTATE="&AnsiURLEncode($ViewValue)&"&txtUserNumber="&$TelNumber&"&hdSource=&hdInviteUid=0&hdInviteSeqno=&hdInviteType=&hdInviteGroup="
$rContext=_WinHTTP_GetRespond($MyOpen,"http://mail.10086.cn/Register/default.aspx",1,2,10000,1,$context,$Cookies,"Content-Type: application/x-www-form-urlencoded")
Switch $rContext
Case 302
MsgBox(64,"Congratulation!","用户: "&$TelNumber&" 未被注册~")
Case Else
MsgBox(48,"I'm Sorry~","用户: "&$TelNumber&" 已经被注册!")
EndSwitch
_WinHttpCloseHandle($MyOpen)
Func AnsiURLEncode($str, $falg = 0)
;转换字符串为ANSI(GB2312)URL编码By afan
;可选参数$falg = 0,不转换字母及数字(默认);$falg = 1,全部转换(字符头http://除外)
Local $str_s = StringRegExpReplace($str, '^(http://).+', '$1')
If @extended = 0 Then $str_s = ''
If @extended > 0 Then $str = StringRegExpReplace($str, '^http://', '')
Local $astr, $i, $s2d, $sS = StringSplit($str, '')
For $i = 1 To UBound($sS) - 1
If StringRegExp($sS[$i], '[^\x00-\xff]') Then
$s2d = StringToBinary($sS[$i] & ' ')
$astr &= '%' & StringMid($s2d, 3, 2) & '%' & StringMid($s2d, 5, 2)
ElseIf StringRegExp($sS[$i], '[^\w]') Then
$s2d = StringToBinary($sS[$i])
$astr &= '%' & StringMid($s2d, 3, 2)
Else
If $falg = 0 Then $astr &= $sS[$i]
If $falg <> 0 Then
$s2d = StringToBinary($sS[$i])
$astr &= '%' & StringMid($s2d, 3, 2)
EndIf
EndIf
Next
$astr = StringReplace($astr, '%20', '+') ;转换空格的编码为'+'号,也可不要此行
Return $str_s & $astr
EndFunc ;==>AnsiURLEncode 回复 23# republican
_WinHTTP_GetRespond.au3
这个函数,到底怎么处理,我搜索了BBS有介绍,但是我怎么放,都不正确,
请教! _WinHTTP_GetRespond.au3
winhttp.au3
winhttp_constatn.au3
都放在include或者同级目录即可。 我来整个简单的 一看就会$oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
$txtUserNumber = "13727004206"
$oHTTP = ObjCreate("Microsoft.xmlhttp")
$oHTTP.Open("POST", "https://mail.10086.cn/Register/Default.aspx", False)
$oHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send("__EVENTTARGET=subSendMsm&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwULLTExMjE0NzQ2NjMPFgIeCGNsaWVudGlkAusHFgICAQ9kFgRmDxYCHgdWaXNpYmxlaGQCCg8WAh8BaGRk&txtUserNumber=" & $txtUserNumber & "&hdSource=&hdInviteUid=0&hdInviteSeqno=&hdInviteType=&hdInviteGroup=");post关键数据
$oText = $oHTTP.responsetext
Select
Case StringInStr($oText, '您已是139邮箱用户') <> 0;已经注册过
MsgBox(0, "", "您已是139邮箱用户")
Case StringInStr($oText, '短信验证码将下发到您的手机,请注意查收。收取短信验证码是免费的') <> 0;可以注册
MsgBox(0, "", "短信验证码将下发到您的手机" & $txtUserNumber)
Case $oText = "";返回为空,可以处理为超时了。也有可能是提交的数据有误导致返回为空
MsgBox(0, "", "超时错误")
Case Else;其他错误 日志保存在Log.txt,看返回的是什么在加判断
FileWrite('Log.txt', $oText)
MsgBox(0, "", "出现未知错误")
EndSelect
Func MyErrFunc()
;可以什么都不做,目的为了防止忘了超时导致程序崩溃。
EndFunc ;==>MyErrFunc 我最近也在学习Post 啊。。
页:
1
[2]