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

UDF _HttpRequest2 - Bản mới của _HttpRequest - nền tảng WinINet

Thảo luận trong 'Chia sẻ mã nguồn' bắt đầu bởi tuoitre, 30/4/17.

  1. tuoitre

    tuoitre Thành viên năng động
    • 28/34

    Tham gia ngày:
    15/9/15
    Bài viết:
    135
    Đã được thích:
    89
    em thông bác trước :D .... thanks bác................... bác ăn j mà học giỏi quá ợ...:D chỉ giáo mọi người đi bác...
     
    Huân Hoàng thích bài này.
  2. 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
    iêm ăn theo cái UDF WinINet của người ta thôi thým ơi, nó giống 80% WinHttp rồi nên đọc tí tài liệu là viết lại được hà :v
     
  3. nghiahsgs

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

    Tham gia ngày:
    14/4/16
    Bài viết:
    10
    Đã được thích:
    3
    tks bác lại có cái vọc.30/4 mà bác ko nghỉ ngơi à =))
     
  4. essered

    essered Thành viên
    • 18/23

    Tham gia ngày:
    11/9/16
    Bài viết:
    47
    Đã được thích:
    45
    thanks bác nhiều, có vẻ tốt hơn nhưng so sánh tốc độ thì sao bác, với lại có obfucator được không
     
  5. zCafex

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

    Tham gia ngày:
    24/3/17
    Bài viết:
    6
    Đã được thích:
    1
    Bác nào giúp em đăng nhập vào http://vietequity.com/home và lấy Cookie với
    Nó không cho vào = IE va FireFox, chỉ được dùng Chorme và Safari
     
  6. 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
    Tốt độ ngang hoặc nhỉnh hơn WinHttp tí do các hàm được làm gọn ở mức tối đa. Còn Obf thì thým thử xem chứ iêm chưa test nhiều. :v
     
  7. 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
    Cứ dùng _HttpRequest cũ mà tán thôi :v

    Mã (AutoIt):
    #include <_HttpRequest.au3>
    $mail = ''
    $pass = ''
    $rq1 = _HttpRequest(1, 'http://vietequity.com/user/login', 'username=' & _URIEncode($mail) & '&password=' & _URIEncode($pass) & '&submit=%26%23272%3B%26%23259%3Bng+nh%26%237853%3Bp')
    $Cookies = _GetCookie($rq1)
    MsgBox(0, 'Cookie', $Cookies)
    $rq2 = _HttpRequest(2, 'http://vietequity.com/home', '', $Cookies)
    _FileWrite_Test($rq2)
     
    zCafex thích bài này.
  8. zCafex

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

    Tham gia ngày:
    24/3/17
    Bài viết:
    6
    Đã được thích:
    1
    Thank bác Huân :D
     
  9. emga9xkc

    emga9xkc Thành viên năng động
    • 43/45

    Tham gia ngày:
    7/3/16
    Bài viết:
    232
    Đã được thích:
    205
    hay quá bác
     
  10. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    @Huân Hoàng giải thích cái này giúp mình được không? Nhất là phần có thêm dấu chấm ở trước $iReturn ấy. Không hiểu nó cho lắm
     
  11. 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
    à, tại lúc iêm làm cái _HR2 iêm lỡ copy cái chú thích bên _HR qua luôn đó mà, thực ra cũng không cần thiết quan tâm đến nó lắm vì trong code iêm cho StringToBinary ở mode 4 sẵn rồi :p

    Còn về việc thêm ba cái dấu trước $iReturn là để set nhanh mấy cái option vớ vẩn như:
    _HttpRequest(-2, ...) => Lấy dữ liệu trả về ở dạng Binary
    _HttpRequest(-1, ...) => Lấy Cookies
    _HttpRequest('*1', ...) => Bật lại Redirect (mặc định là Tắt Redirect)
    _HttpRequest('+2', ...) => Ví dụ lỡ add Header gì đó khiến dữ liệu trả về bị GZip thì để như thế này để chắc chắn dữ liệu lấy về sẽ được giải nén ra.
    _HttpRequest('.2', ...) => Để chắc chắn dữ liệu gửi đi là UTF8
    Vậy thôi ợ :D
     
  12. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    Cái hàm quan trọng nhất của UDF : _HttpRequest nhưng có nhiều tham số dài dòng quá
    Ví dụ như $sCookie và $sReferrer , 2 em này cậu làm cho nó auto đc ko? như vậy code sẽ hay hơn và gọn bớt tham số vào
    Còn $sAdditional_Headers thì bỏ đi vì có hàm riêng để gán rồi
     
  13. 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
    $sCookie thì không thể bỏ rồi, vì ta có thể sử dụng lại những Cookies cũ của lần đăng nhập trước (đã lưu ra đâu đó) dùng lại.

    Mà thật ra là 3 cái $sCookie, $sReferer, $sAdditional_Headers thì quy chung lại đều là Header cần để gửi đi thôi, ở mấy phiên bản đầu iêm để chúng chỉ là 1 tham số chung là $sHeader thôi, mà về sau thấy $sCookie quan trọng, $sReferer cũng khá quan trọng, request trước giờ cũng cả trăm trang rồi thấy có trang phải request với header Referer nó mới ra kết quả... nên mới tách 3 thằng này ra ở mấy phiên bản sau này để nhấn mạnh tầm quan trọng của tụi nó ;)) Còn về cái dùng hàm riêng _WinHttpAddRequestHeaders hoặc _WinInetAddRequestHeaders để add header thì tại iêm muốn chỉ request = 1 dòng duy nhất thôi nên gộp chung tụi nó lại, mà cũng ít khi phải gán cái $sAdditional_Headers với $sReferer lắm, thường thì chỉ gán 2, 3 hoặc 4 tham số là cùng nên viết ra cũng gọn thôi mà. :p
     
  14. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    Cái $sCookie có thể lưu lại ở đâu đó và dùng lại với làm AddRequestHeaders rồi, còn $sAdditional_Headers nó chỉ có tác dụng khi chuyển từ $sVerb từ GET sang POST hoặc PUT thôi.
    Chứ trong 1 request cái $sAdditional_Headers vs $sCookie mà gom hết vô 1 hàm chung như vậy sẽ giới hạn khả năng tùy biến của ứng dụng lắm.
    Gộp thế chỉ phù hợp vs những chương trình simplest là chính

    còn $sReferrer có thể giữ lại vì 1 số trang cần dùng nó như dạng tracker để duy trì session của request
     
    Huân Hoàng thích bài này.
  15. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    $sCookie = cái gì để Number nó ra (-1) vậy?
     
  16. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    Share cho ai cần để thêm vào file au3.api
     
    Huân Hoàng and tuoitre like this.
  17. 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
    à, cái đó để mình tự gán vào $sCookie bằng -1 đó thým, kiểu như:
    _HttpRequest thứ 1
    _HttpRequest thứ 2 gán $sCookie = -1 để clear Cookies mà thằng thứ 1 đang giữ :p:p thým hỏi iêm mới nhớ quên lưu ý trong bài viết hướng dẫn của iêm :))

    Còn $sAdditional_Headers để add header cho mấy cái request kiểu như lâu lâu có cái loại phải có header 'X-Requested-With: XMLHttpRequest' hay Authorize gì đấy thì nó mới request thành công ấy. iêm cũng muốn làm cho gọn như ý kiến của thým mà ngặt nỗi iêm lười vỡi ra, lại sợ đổi xong thì mấy code liên quan từ đó đến giờ cũng phải sửa lại hết =.=" :oops: :oops:
     
    Nguyễn Văn Tất thích bài này.
  18. hoangtieubao

    hoangtieubao Thành viên
    • 8/11

    Tham gia ngày:
    31/5/17
    Bài viết:
    41
    Đã được thích:
    11
    Mấy cái XML thì hi hữu mới ra, nó chả quan trọng dùng AddRequestHeader cũng xong
    Còn authorize thì có thể viết trong hàm _HttpRequest_Authorization mà

    Căn bản ở đây mình góp ý thôi, UDF này giúp gọn những cái loằng ngoằng rất tốt.
    Với những chương trình kiểu như demo vs test thì càng gọn là ok
    Nhưng với mấy cái chương trình đàng hoàng theo kiểu phức tạp hơn như tiện FB, GG, YTB, vân vân mây mây
    thì nó giới hạn tùy biến của UDF quá nhiều, dẫn đến việc phải viết lại cái loằng ngoằng của udf

    Cái này ai mới viết udf đều mắc phải nên mình chỉ góp ý nếu có thể thì cố gắng làm nó thật mượt mà
    Hiện tại, mình đg ngâm cứu cái Asynchronous dùng WinInet để hỗ trợ viết chương trình ổn định và ngắn gọn hơn
    Nhưng độ phức tạp thì không nhỏ :D
     
    Huân Hoàng thích bài này.
  19. kakanet

    kakanet Thành viên năng động
    • 43/45

    Tham gia ngày:
    24/2/16
    Bài viết:
    203
    Đã được thích:
    211
    Mình thấy _httprequest hiện tại đã quá gọn gàng và dễ sử dụng rồi, nếu cậu nói fb, gg _httprequest bị giới hạn hay loằng ngoằng gì đó thì hãy đọc qua bài Tương tác fb bằng _httprequest trên diễn đàn, code tạo ra ngắn gọn và xúc tích. Nhưng nếu cậu có thể tạo ra 1 hàm hoàn thiện hơn nữa cho việc request thì điều đó thật sự rất đáng mong đợi. Chờ ngày phát hành ^^
     
  20. hailongdoan

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

    Tham gia ngày:
    21/7/16
    Bài viết:
    6
    Đã được thích:
    3
    hay qua cảm ơn bác ạ :D :D
     

Chia sẻ trang này

Đang tải...