Example 3

HTTP Requests

Example 3

Top  Previous  Next

Lấy link 320 và Lossless Zingmp3 thông qua trang

http://www.linkvip.info

 

 

Ta làm theo từng bước như sau:

 

1/ Xem Live HTTP Headers các request cần làm

 

 

·Điền url một bài hát vào, ví dụ: https://mp3.zing.vn/bai-hat/Ngung-Khoc-Cho-Nhau-Karik/ZW7FZW0B.html nhưng khoan bấm nút GET LINK.

 

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

 

·Bây giờ mới bấm nút GET LINK, tìm trong Live HTTP Headers chỗ nào có POST và có tên host linkvip.info thì thấy:

 

http://www.linkvip.info:8001/mp3/

 

POST /mp3/ HTTP/1.1

Host: www.linkvip.info:8001

User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:51.0) Gecko/20100101 Firefox/51.0 Cyberfox/51.0

Accept: application/json

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Content-Type: application/json

Referer: http://www.linkvip.info/

Content-Length: 77

Origin: http://www.linkvip.info

DNT: 1

Connection: keep-alive

  {"url":"https://mp3.zing.vn/bai-hat/Ngung-Khoc-Cho-Nhau-Karik/ZW7FZW0B.html"}

→ DataToSend

 

HTTP/1.0 200 OK

Date: Fri, 20 Oct 2017 06:08:27 GMT

Server: WSGIServer/0.1 Python/2.7.12

Access-Control-Allow-Origin: http://www.linkvip.info

Vary: Origin

X-Frame-Options: SAMEORIGIN

Content-Type: application/json

Content-Length: 413

 

- Ta thấy URL để request là http://www.linkvip.info:8001/mp3/, 8001 chính là Custom Port của Host này, tuy nhiên ta không cần phân tích thêm gì ở chỗ này cả vì _HttpRequest đã tự động chuyển Port khi gặp những dạng URL như thế này.

- Còn nếu bạn sử dụng hàm gốc của WinHTTP thì nhớ gán 8001 vào tham số $iServerPort của hàm _WinHttpConnect.

 

 

2/ Phân tích Headers

 

·Các Header như Accept, Accept-Language, Accept-Encoding, Connection, Content-Length, User-Agent, DNT: 1 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

 

·Vậy còn lại header: Origin: http://www.linkvip.info, ta khoan điền, nếu request thất bại thì điền vào.

Kết quả: Phải điền header Origin vào thì request thành công.

 

 

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 điền Referer mới request thành công.

 

 

4/ Phân tích Cookie

 

Không có Cookie.

 

 

5/ Phân tích Data cần gửi đi

 

DataToSend thường nằm thụt lùi qua phải hơn so với các dòng khác, nó là:

{"url":"https://mp3.zing.vn/bai-hat/Ngung-Khoc-Cho-Nhau-Karik/ZW7FZW0B.html"}

 

Các thông số trong DataToSend không có gì cần bàn đến.

 

 

6/ Hoàn thiện code

 

#include <_HttpRequest.au3>

$rq = _HttpRequest(2, 'http://www.linkvip.info:8001/mp3/', '{"url":"https://mp3.zing.vn/bai-hat/Ngung-Khoc-Cho-Nhau-Karik/ZW7FZW0B.html"}', '', 'http://www.linkvip.info/', 'Origin: http://www.linkvip.info')

MsgBox(4096, 'Kết Quả', $rq)