Example 1

HTTP Requests

Example 1

Top  Previous  Next

Đăng nhập trang http://chiasenhac.vn

và lấy thông tin Response Header sau khi đăng nhập thành công

 

 

* Nếu chưa có tài khoản thì dùng tài khoản sau:

user: huan1hoang2, password: 123456

 

 

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

 

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

 

·Vào trang chiasenhac.vn, vào trang đăng nhập của nó: http://chiasenhac.vn/login.php

 

·Điền thông tin đăng nhập vào (username, password) nhưng khoan bấm nút Đăng Nhập.

 

·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 Đăng nhập và Live HTTP Headers sẽ hiển thị 1 đống thông tin. Vì là đăng nhập nên tìm trong Live HTTP Headers chỗ nào có POST và có tên host chiasenhac.vn với login, thì thấy:

 

http://chiasenhac.vn/login.php

 

POST /login.php HTTP/1.1

Host: chiasenhac.vn

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

Accept-Language: en-US

Accept-Encoding: gzip, deflate

Referer: http://chiasenhac.vn/login.php

Cookie: __utma=54134010.1032564320.1504597696.1504597696.1504597696.1;

DNT: 1

Connection: keep-alive

Content-Type: application/x-www-form-urlencoded

Content-Length: 93

  username=huan1hoang2& password=123456& autologin=on&redirect=& login=%C4%90%C4%83ng+nh%E1%BA%ADp

→ DataToSend

 

HTTP/1.1 302 Moved Temporarily

Server: nginx admin

Date: Tue, 05 Sep 2017 07:50:10 GMT

Content-Type: text/html; charset=utf-8

Transfer-Encoding: chunked

Connection: keep-alive

X-Powered-By: PHP/5.4.34

refresh: 0; URL=http://chiasenhac.vn/member.php?sid=b1eb407eb2c4c07395c62e294b2ec072

Set-Cookie: csn_data=a%3A2%3A%7Bs%3A11%3A%22autologinid%22%3Bs%3A32%3A%226d333cab5685597e83430ae45c933ae3%22%3Bs%3A6%3A%22userid%22%3Bs%3A6%3A%22715659%22%3B%7D; expires=Thu, 05-Oct-2017 07:50:10 GMT; path=/; domain=.chiasenhac.vn

Set-Cookie: csn_sid=b1eb407eb2c4c07395c62e294b2ec072; path=/; domain=.chiasenhac.vn

Location: http://chiasenhac.vn/member.php?sid=b1eb407eb2c4c07395c62e294b2ec072

 

 

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

 

 

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

 

 

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.

 

 

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à:

username=huan1hoang2&password=123456&autologin=on&redirect=&login=%C4%90%C4%83ng+nh%E1%BA%ADp

 

·Ta có thể đặt 2 chỗ huan1hoang2123456 là biến để dễ tuỳ biến hơn: $sDataToSend = 'username=' & $name & '&password=' & $pass & '&autologin=on......

 

·Vì chuỗi gửi đi $sDataToSend phải là chuỗi không dấu, nhưng sẽ có trường hợp đặt tên cho tài khoản có chứa ký tự có dấu nên để chắc ăn, ta dùng hàm _URIEncode($name) để biến chuỗi có dấu thành chuỗi không dấu theo chuẩn URL.

 

·Đoạn login=%C4%90%C4%83ng+nh%E1%BA%ADp không phải là giá trị lạ gì mà là chuỗi "Đăng nhập" đã bị URIEncode nên ta cứ giữ nguyên đó không cần quan tâm.

 

 

6/ Hoàn thiện code

 

Bài thực hành yêu cầu lấy Response Headers trả về nên ta gán $iReturn = 1

 

#include <_HttpRequest.au3>

$name = 'huan1hoang2'

$pass = '123456'

$rq = _HttpRequest(1, 'http://chiasenhac.vn/login.php', 'username=' & _URIEncode($name) & '&password=' & $pass & '&autologin=on&redirect=&login=%C4%90%C4%83ng+nh%E1%BA%ADp')

MsgBox(4096, 'Response Header', $rq)