Upload tập tin TXT lên trang:
http://www.uploadedit.com/_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm
Ta làm theo từng bước như sau:
1/ Xem Live HTTP Headers các request cần làm
· Bấm nút Choose File và chọn tập tin txt cần upload nhưng khoan bấm vào nút UPLOAD .
· Nếu chưa bật Live HTTP Headers thì bật nó lên. Nếu bật rồi thì b ấm Clear để xoá hết các request cũ không liên quan .
· Giờ ta mới bấm nút UPLOAD, và Live HTTP Headers sẽ hiển thị 1 đống thông tin. Ta tìm trong Live HTTP Headers đoạn request liên quan:
http://www.uploadedit.com/_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm
POST /_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm HTTP/1.1
Host: www.uploadedit.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:51.0) Gecko/20100101 Firefox/51.0 Cyberfox/51.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://www.uploadedit.com/_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm
Cookie: PHPSESSID=66c042553ae6cdb5ea11b52dfdc14399; __servid=0
Content-Type: multipart/form-data; boundary=---------------------------1545216715435
Content-Length: 325
-----------------------------1545216715435
Content-Disposition: form-data; name="my_field"; filename="123.txt"
Content-Type: text/plain
test thử upload
-----------------------------1545216715435
Content-Disposition: form-data; name="Submit" → Data-Form
- - - UPLOAD - - -
-----------------------------1545216715435--
2/ Phân tích Headers
Các Header như Accept , Accept-Language , Accept-Encoding , Connection , Content-Length , User-Agent ta không cần để ý đến chúng vì UDF đã add sẵn hết rồi. Xem thêm chi tiết tại mục $sAdditional_Headers
3/ Phân tích Referer
Hình trên có Referer nhưng không điền vào tham số $sReferer cũng được, chừng nào request thất bại mới điền vào để thử.
→ Kết quả : Phải có Referer mới request thành công.
4/ Phân tích Cookie
· Những cookie tạp nham thường có dạng __abcxyz , ___ abcxyz ta không cần để ý đến chúng.
· Còn lại Cookie PHPSESSID thường thì không cần nạp vào $sCookie , nhưng có nhiều trang lại cần thằng PHPSESSID này (ví dụ như https://10minutemail.org ). Nói chung là khoan nạp, khi nào request thất bại thì mới nạp thử.
5/ Phân tích Data cần gửi đi
Ta sẽ dùng hàm _HttpRequest_CreateDataForm để tạo nhanh Data-Form.
· Key1 là my_field , Value1 là Thông tin của tập tin txt (gồm Tên, Content-Type, Nội dung). Vì Value1 là Thông tin tập tin nên:
Ø Key1 ta phải thêm dấu $ vào trước
Ø Value1 ta nạp đường dẫn của tập tin cần upload.
· Key2 là Submit , Value2 là ---UPLOAD---
6/ Phân tích ngoài luồng
Khi tiến hành request thì request thất bại, thử nạp Referer vào thì request thành công → Trang này cần phải nạp Referer vào .
7/ Hoàn thiện code
#include <_HttpRequest.au3>
$sFilePath = FileOpenDialog ('Chọn 1 tập tin txt', '', 'txt (*.txt)')
If @error Then Exit
$HOST = 'http://www.uploadedit.com/_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm'
Local $aForm = [[' $ my_field', $sFilePath ], ['Submit', '- - - UPLOAD - - -']]
$sDataToSend = _HttpRequest_CreateDataForm ( $aForm )
$rq = _HttpRequest (2, $HOST , $sDataToSend , '', $HOST )
_HttpRequest_Test ( $rq )
Ngoài ra ta có thể rút gọn code bằng cách nạp thẳng $aForm vào tham số $sData2Send của _HttpRequest luôn cũng được:
#include <_HttpRequest.au3>
$sFilePath = FileOpenDialog ('Chọn 1 tập tin txt', '', 'txt (*.txt)')
If @error Then Exit
$HOST = 'http://www.uploadedit.com/_to-upload-documents-onto-internet-PLAIN-TEXT-TXT-hosting.htm'
Local $aForm = [[' $ my_field', $sFilePath ], ['Submit', '- - - UPLOAD - - -']]
$rq = _HttpRequest (2, $HOST , $aForm , '', $HOST )
_HttpRequest_Test ( $rq )