1. Tải bản cài đặt AutoIT mới nhất

    Chào Khách. Nếu bạn mới tham gia và chưa cài đặt AutoIT.
    Vui lòng vào topic trên để tải bản AutoIT mới nhất nhé
    Dismiss Notice
  2. Quy định và nội quy

    Chào Khách. Vui lòng đọc kỹ nội quy và quy định của diễn đàn
    Để tránh bị ban một cách đáng tiếc nhé!
    Dismiss Notice
  3. Hướng dẫn chèn mã AutoIT trong diễn đàn

    Chào Khách. Vui lòng xem qua bài viết này
    Để biết cách chèn mã AutoIT trong diễn đàn bạn nhé :)
    Dismiss Notice

Hướng dẫn [v14.0.6 - 23/7/2019] HttpRequest cho người mới bắt đầu - Ví dụ, hình ảnh chi tiết

Thảo luận trong 'Hướng dẫn - Bài tập căn bản' bắt đầu bởi Huân Hoàng, 13/3/16.

  1. Đức Tâm

    Đức Tâm Thành viên mới
    • 3/6

    Tham gia ngày:
    27/8/16
    Bài viết:
    8
    Đã được thích:
    1
    LIKE bác
     
    kamsamita1 thích bài này.
  2. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Bác Huân Hoàng cho e hỏi,cái _HttpRequest_Obj có thể thay thế hoàn toàn cái _HttpRequest luôn phải không bác?Để e xóa cái kia và sau này dùng luôn cái này
     
    kamsamita1 thích bài này.
  3. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Code em đây:
    Mã (AutoIt):
    #include <_httprequest.au3>
    $RQ_Post_Login = _HttpRequest(1, 'https://accounts.chotot.com/api/login', '{"phone":"0989815790","password":"lucky7979","rememberMe":true,"msess":null,"delaySetCookie":false}', '', '', 'Content-Type: application/json')
    $Cookie_Login=_GetCookie($RQ_Post_Login)
    $RQ_Get_HomePage=_HttpRequest(2,'https://www.chotot.com/','',$Cookie_Login)
    _FileWrite_Test($RQ_Get_HomePage)
    Xin bác chỉ giáo dùm,sao em chạy hoài nó vẫn không đăng nhập được dù đã request login được rồi mà trang Get lại bị out và bị bể hết vậy bác.Xin bác chỉ giáo dùm em
     
    kamsamita1 thích bài này.
  4. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @minhthong250485

    Đăng nhập được mà
    [​IMG]

    Thực ra không phải nó bể trang mà là những url ảnh trực tiếp thì nó hiển thị được, còn mấy source ảnh .gif, .svg, .css do nó nằm riêng với source nên hiển thị lỗi thôi ấy mà, còn cơ bản đã có cookie rồi thì cứ request theo mục đích của mình, file_test cái trang đó chỉ để thử coi đăng nhập thành công hay không thôi ấy mà :v
     
    kamsamita1 thích bài này.
  5. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @minhthong250485
    À, mới nhận ra thằng chotot.vn nó dùng api nhoé, có điều nó không public api cho người dùng biết nhưng mà có thể thấy qua LHH.

    [​IMG]

    Như hình thì chỉ cần có access_token thì tha hồ tung hoành.
    Giờ mình sẽ ví dụ cách đổi tên Tài khoản thông qua api của nó:

    Mã (AutoIt):
    #include <_httprequest.au3>
    $RQ_Post_Login = _HttpRequest(2, 'https://accounts.chotot.com/api/login', '{"phone":"0989815790","password":"lucky7979","rememberMe":true,"msess":null,"delaySetCookie":false}', '', '', 'Content-Type: application/json')
    $Token = StringRegExp($RQ_Post_Login, '"token":"(.*?)"', 1)
    ;Lấy access_token để Authorization (thằng Chotot lấy access_token khá dễ so với Google)
    If @error Then Exit MsgBox(4096, 0, 'Lỗi')
    $Token =  $Token[0]
    MsgBox(4096, 'Token', $Token)

    $NewName = 'Tên Muốn Đổi'

    $RQ_ChangeName = _HttpRequest(2, 'https://gateway.chotot.com/v1/private/profile', '{"full_name":"' & $NewName & '","address":"1049,nguyen kiem,p3,go vap"}', '', '', 'Authorization: Bearer ' & $Token & '|Content-Type: application/json', 'PUT')
    ; Lưu ý: Đây là phương thức PUT <> GET, POST nên phải điền vào $OVerb = PUT
    MsgBox(4096, 'Kiểm tra có thành công không?', $RQ_ChangeName)
    Bạn chạy code và F5 lại trang chotot xem có đổi tên không =))
     
    kamsamita1 and minhthong250485 like this.
  6. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Cám ơn Bác để em nghiên cứu thêm rồi mới dám hỏi tiếp sợ hỏi lung tung bác lại mắng em,tại mới tập tành nên chưa rành lắm,em vọc liên tục mấy ngày mất ăn mất ngủ mà nhiều thứ còn mơ hồ quá
     
    kamsamita1 thích bài này.
  7. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Bác cho em hỏi ngu bác trả lời dùm,em đọc nhiều quá loạn luôn rồi.Cái Token đó là cái gì nó tương đương Cookie hả Bác?Bài API của bác e đọc hết 3,4 lần mà vẫn chưa hiểu.E thấy bác request mà không cần dùng Cookies luôn,Bác giải thích dùm em nha,thanks Bác nhiều
     
    kamsamita1 thích bài này.
  8. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    À, dùng API đơn giản là: Tên TK + Pass sẽ đổi ra API-Key hoặc access-token, nôm na là mã truy cập. Khi request thì chỉ cần quăng cái mã truy cập này vô mặt thằng cần request là xong :)) Ví dụ cái code Đổi tên TK ở trên, đã lấy được access_token rồi thì lưu cái token đó lại vào đâu đó để sử dụng tiếp. Sau này request để làm bất cứ việc gì với trang chotot thì chỉ cần thêm vào Request Header (param $Additional_Headers) Authorization: Bearer <Mã truy cập> là xong.
     
    kamsamita1 thích bài này.
  9. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Cấu trúc Authorization: Bearer <Mã truy cập> này là sử dụng với mọi trang hay chỉ trang này thôi bác,nếu trang khác thì em lấy cấu trúc này ở đâu bác
    Em hiểu rồi chắc phải đọc trong cái LHH
    Nhưng cái token đó e thấy có mấy cái token lận tại sao mình chỉ lấy cái thằng token đầu tiên thôi vậy bác.Tại e thấc bác lấy token[0]
     
    Chỉnh sửa cuối: 30/11/16
    kamsamita1 thích bài này.
  10. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Tuỳ trang nào có sử dụng API hay không thôi bạn, bạn có thể google chứ mình kiểu làm quen tay thôi chứ không biết nên giải thích thế nào nữa. :D
     
    kamsamita1 thích bài này.
  11. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Vâng em sẽ ráng tìm hiểu.Còn 1 kỹ năng mình xin được chỉ giáo:
    Khi mình mở LHH lên để đọc nó,vừa thực hiện login thôi nó hiện ra 1 đống cái request và respone,có cách nào lọc lại những cái cần thiết cho dễ quan sát không?mình thấy trong LHH nó có mục config gì đó...
    Làm sao biết trang nào có sử dụng API vậy bác
     
    Chỉnh sửa cuối: 30/11/16
    kamsamita1 thích bài này.
  12. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @minhthong250485 Tích bộ lọc của LHH như hình:
    [​IMG]

    Bộ lọc của mình:
    HTML:
     .gif$|.jpg$|.ico$|.css$|.js$|.png$|googleads|eclick.vn|doubleclick.net|ants.vn|\.css\?v=|adsplay|google-analytics.com
    Bạn có thể thêm vào theo ý thích của bạn dựa trên regexp cơ bản.
    Còn để biết trang có sử dụng API không thì gõ Google <tên trang> API. Ví dụ Google API, Facebook API, Pastebin API .... Nếu trang có sử dụng API nhưng nó không public cho người dùng thì nhìn LHH thấy .api, Authorization này nọ cũng đoán được :p
     
    kamsamita1 thích bài này.
  13. minhthong250485

    minhthong250485 Thành viên mới
    • 1/6

    Tham gia ngày:
    30/11/16
    Bài viết:
    8
    Đã được thích:
    8
    Cám ơn bác nhiều mình nghiên cứu thêm có gì không hiểu lại hỏi bác,đang đọc lại nhiều lần từ đầu bài của bác và coi các hàm trong httprequest.au3
     
    kamsamita1 thích bài này.
  14. enjoyedtvn

    enjoyedtvn Thành viên mới
    • 3/6

    Tham gia ngày:
    17/7/16
    Bài viết:
    17
    Đã được thích:
    13
    cho mình hỏi hàm _HttpRequest_ClearCookies() sao mình dùng ko đc nhỉ, nó vẫn dùng cookie trước đó cho request tiếp theo :(
     
    kamsamita1 thích bài này.
  15. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    @enjoyedtvn 3 hàm _HttpRequest_CreateDataFormSimple, _HttpRequest_ClearCookies với _HttpRequest_Authorization mình chỉ mới viết thêm thử, chưa test nhiều nên chắc không chạy ổn ấy, từ từ sẽ cập nhật sau :p:p:p
     
    kamsamita1 and enjoyedtvn like this.
  16. enjoyedtvn

    enjoyedtvn Thành viên mới
    • 3/6

    Tham gia ngày:
    17/7/16
    Bài viết:
    17
    Đã được thích:
    13
    Hóng :D
     
    kamsamita1 thích bài này.
  17. duc

    duc Thành viên
    • 8/11

    Tham gia ngày:
    28/2/16
    Bài viết:
    38
    Đã được thích:
    23
    @Huân Hoàng :D kaka hơi khó hiểu :D thím làm 1 code dễ dễ hiểu ý :D
     
    kamsamita1 thích bài này.
  18. Nguyễn Việt Hoàng

    Nguyễn Việt Hoàng Thành viên mới
    • 3/6

    Tham gia ngày:
    5/12/16
    Bài viết:
    3
    Đã được thích:
    3
    @Huân Hoàng mình có viết một tool để auto reg Nick Zing nhưng phải chiếm chuột với bàn phím. Giờ mình muốn nó auto ẩn thôi, kiểu tự gửi thông tin đến Zing để đăng kí, nếu có captcha thì báo về để mình nhập. Vậy mình có thể dùng code như thế nào nhỉ? Nếu có thời gian bạn có thể code mẫu cho mình phần gửi thông tin được không? Cám ơn bạn nhiều :)
     
    kamsamita1 thích bài này.
  19. Huân Hoàng

    Huân Hoàng Administrator Thành viên BQT Administrator Super Moderator
    • 93/113

    Tham gia ngày:
    29/9/15
    Bài viết:
    642
    Đã được thích:
    1,181
    Đăng ký acc Zing dễ lắm, đọc xong phần 2 của bài hướng dẫn là có thể tự làm được rồi mà :D Mình trích cái code đăng ký Zing từ 1 chương trình của mình để bạn tham khảo, chưa bao gồm tình huống hiện captcha khi thực hiện đăng ký nhiều lần, bạn có thể tìm hiểu thêm để hoàn thiện code bạn cần: ;)

    Mã (AutoIt):
    #include <_HttpRequest.au3>
    $test = _Create_NewAccZing('HuanHoang', 'huan101hoang102', 'huanhoang')
    MsgBox(4096, @error, $test)


    Func _Create_NewAccZing($fullname, $user, $pass, $ngay_sinh = 1, $thang_sinh = 1, $nam_sinh = 2000, $gioi_tinh = 0)
        Local $Host = 'https://id.zing.vn/v2'
        Local $apiKey = 'apikey=92140c0e46c54994812403f564787c14'
        Local $sURL = $Host & '/register?' & $apiKey & '&pid=38&next=' & $Host & '/infosetting?' & $apiKey & '&pid=38'
        Local $dataPost = $apiKey & '&next=' & $Host & '/infosetting?' & $apiKey & '&pid=38&type=regbyacc' & '&fullname=' & _URIEncode($fullname) & '&account=' & _URIEncode($user) & '&pwd=' & _URIEncode($pass) & '&re_pwd=' & $pass & '&dob=' & $ngay_sinh & '&mob=' & $thang_sinh & '&yob=' & $nam_sinh & '&gender=' & $gioi_tinh
        Local $_register = _HttpRequest(2, $sURL, $dataPost, _HttpRequest(-1, $sURL))
        If @error Or Not $_register Then Return SetError(1, 0, 'Không thể thực hiện đăng ký Tài Khoản mới')
        Select
            Case StringInStr($_register, 'Tên đăng nhập không hợp lệ', 1, 1, 20000)
                Return SetError(2, 0, 'Tên đăng nhập này không hợp lệ. Phải không dấu, 8 ký tự trở lên bao gồm chữ và số')
            Case StringInStr($_register, 'Tên đăng nhập đã tồn tại', 1, 1, 20000)
                Return SetError(3, 0, 'Tên đăng nhập này đã tồn tại')
            Case StringInStr($_register, 'Mật khẩu từ 6 đến 32 ký tự', 1, 1, 20000)
                Return SetError(4, 0, 'Mật khẩu phải từ 6 đến 32 ký tự, không dấu')
            Case StringInStr($_register, 'regcaptcha', 1, 1)
                Return SetError(5, 0, 'Vui lòng đợi 30 phút tiếp theo để tạo Tài Khoản mới')
        EndSelect
        Return SetError(0, 0, 'Đăng ký Tài Khoản Zing mới thành công')
    EndFunc
     
  20. Nguyễn Việt Hoàng

    Nguyễn Việt Hoàng Thành viên mới
    • 3/6

    Tham gia ngày:
    5/12/16
    Bài viết:
    3
    Đã được thích:
    3
    @Huân Hoàng Cám ơn bạn:), cho mình hỏi thêm cái vụ hiện captcha thì dùng hàm như thế nào để lấy token cho phù hợp vậy vì token random, với lại dùng LHH thì thấy có 2 token lận :p

    [​IMG]

    Thanks :)
     
    kamsamita1 thích bài này.

Chia sẻ trang này

Đang tải...