Example

HTTP Requests

Example

Top  Previous  Next

So sánh giữa code sử dụng UDF WinHttp gốc và UDF _HttpRequest khi request Upload lên trang

https://posttestserver.com

 

 

* Trang này chỉ cho upload một tập tin ảnh hoặc text có kích cỡ < 500Kb

 

 

A. Code WinHttp gốc lấy từ tập tin Help đính kèm trong UDF WinHttp: (Nếu chưa có thì tải tại đây)

 

#include <WinHttp.au3>

$sFileToUpload = FileOpenDialog("Chọn file ảnh hoặc txt < 500Kb", "", "All Files (*)")

If @error Then Exit

;----------------------------------------------------------------------------------------------------

$sAddress = "https://posttestserver.com/post.php?dump&dir=WinHttp"

$sForm = _

 '<form action="' & $sAddress & '" method="post" enctype="multipart/form-data">' & _

 ' <input type="file" name="upload"/>' & _

 ' <input type="text" name="someparam" />' & _

 '</form>'

$hOpen = _WinHttpOpen()

$hConnect = $sForm

$sHTML = _WinHttpSimpleFormFill($hConnect, $hOpen, Default, "name:file", $sFileToUpload, "name:someparam", "Candy")

_WinHttpCloseHandle($hConnect)

_WinHttpCloseHandle($hOpen)

FileWrite('result.txt', $sHTML)

ShellExecute('result.txt')

 

 

 

B. Code sử dụng UDF _HttpRequest mô phỏng lại code trên:

 

#include <_HttpRequest.au3>

$sFileToUpload = FileOpenDialog("Chọn file ảnh hoặc txt < 500Kb", "", "All Files (*)")

If @error Then Exit

;----------------------------------------------------------------------------------------------------

Local $aForm = ['$file=' & $sFileToUpload, 'someparam=Candy']

$sHTML = _HttpRequest(2, 'https://posttestserver.com/post.php?dump&dir=WinHttp', $aForm)

_HttpRequest_Test($sHTML, 'result.txt')

 

Trông code _HttpRequest đơn giản hơn rất nhiều so với code gốc phải không nào.

Code trên sử dụng _HttpRequest_CreateDataForm để tạo Data-Form upload. Không thấy _HttpRequest_CreateDataForm trong code sao ? Đó là do ta đã sử dụng kiểu rút gọn. Xem chi tiết tại đây.