想用AU3写使用HTTP协议发送POST,google后在autoit的论坛找到了不错的方法。
有人说用xmlhttp,调用ie,用winhttp等等,还是这个obj操作com的方法简单实用。autoit上的大神写了个库,他命名为WinHttp.au3。但有一个UDF也叫WinHttp,使用时把名字改成WinHttp2之类的比较好。
库:
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
#include-once
Global Const $HTTP_STATUS_OK = 200
Func HttpPost($sURL, $sData = "")
Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST", $sURL, False)
If (@error) Then Return SetError(1, 0, 0)
$oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded")
$oHTTP.Send($sData)
If (@error) Then Return SetError(2, 0, 0)
If ($oHTTP.Status <> $HTTP_STATUS_OK) Then Return SetError(3, 0, 0)
Return SetError(0, 0, $oHTTP.ResponseText)
EndFunc
Func HttpGet($sURL, $sData = "")
Local $oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("GET", $sURL & "?" & $sData, False)
If (@error) Then Return SetError(1, 0, 0)
$oHTTP.Send()
If (@error) Then Return SetError(2, 0, 0)
If ($oHTTP.Status <> $HTTP_STATUS_OK) Then Return SetError(3, 0, 0)
Return SetError(0, 0, $oHTTP.ResponseText)
EndFunc
POST方法:
1
2
3
4
#include "WinHttp.au3"
Global $MD5 = HttpPost("http://www.afk-manager.ir/test/post.php", "password=WeWantThisAsMd5")
MsgBox(64, "MD5", $MD5)
GET方法:
1
2
3
4
#include "WinHttp.au3"
Global $sGet = HttpGet("http://www.google.com/")
FileWrite("Google.txt", $sGet)