Autoit实现HTTP GET与POST方法

| 分类 技术随笔  | 标签 经验  分享  Au3 

想用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)

参考链接


上一篇     下一篇