Example 2

HTTP Requests

Example 2

Top  Previous  Next

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.

·Key1my_field, Value1Thông tin của tập tin txt (gồm Tên, Content-Type, Nội dung). Vì Value1Thô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.
ØXem hướng dẫn của hàm _HttpRequest_CreateDataForm nếu chưa hiểu vì sao như vậy.

 

·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)