HttpRequest cho người mới bắt đầu - Ví dụ, hình ảnh, các bước làm chi tiết

Chào các bạn, hiện tại UDF _HttpRequest đã được nâng cấp lên phiên bản 12 với nhiều tính năng và hàm mới hỗ trợ tốt hơn cho việc thực hiện request. Toàn bộ bài viết cũ đã bị xoá bỏ, vì chúng đã không còn thích hợp với _HttpRequest các phiên bản sau này, cũng như việc viết bài trên đây thực sự rất rối mắt và khó tham khảo.

Kể từ bản 12, bài viết hướng dẫn về request bằng WinHttp mình sẽ cho toàn bộ vào một file Hướng dẫn là _HttpRequest_Help.chm (link tải bên dưới), rất chi tiết, rõ ràng, có thể dễ dàng tham chiếu giữa các nội dung, giúp cho việc học về request được trơn tru hơn.

Update lần 12 UDF _httpRequest.au3 (17/09/2017)
  • Thêm nhiều hàm mới bổ trợ cho việc thực hiện request.
  • Một số hàm có sự thay đổi về tham số như hàm _GetCookie, _GetLocationRedirect không cần phải điền tham số $sHeader vào nữa, nó sẽ tự động trích Cookies, Redirect Location từ response header mới nhất request được.
  • Thay đổi một số tên hàm cũ như _FileWrite_Test → _HttpRequest_Test... Tuy nhiên sử dụng tên hàm cũ vẫn được nhưng sẽ có thông báo về việc thay đổi tên hàm ở dưới Console của SciTE.
  • Hàm _HttpRequest_CreateDataForm mới giúp cho việc thực hiện request Upload dễ dàng hơn bao giờ hết.
  • Đối với những ai đã code với _HttpRequest các phiên bản cũ trước đây và có dùng đến hàm set Proxy thì nên đọc kỹ file _HttpRequest_Help.chm về hàm _HttpRequest_SetProxy để làm rõ lại cấu trúc của một proxy đã bị hiểu sai.
  • Từ trước đến nay _HttpRequest mặc định là Disable Redirect. Nó có ưu điểm là dễ đối chiếu với Live HTTP Headers nhưng lại gây hạn chế là khiến phải thực hiện nhiều request hơn. Bắt đầu từ bản 12, mặc định sẽ Enable Redirect, và Response Headers sẽ trả về đầy đủ cả redirect header lẫn header của trang sau khi redirect luôn, như hình bên dưới. Muốn Disable Redirect thì thêm dấu * vào tham số $iReturn của hàm _HttpRequest là được (ngược lại với các phiên bản trước đây).

A/ LỜI NÓI ĐẦU

- Mình không phải dân lập trình, chỉ là mê AutoIt, tập tành code kiết này nọ nên có thể kiến thức, lý thuyết, cách gọi …trong lập trình của mình không chính xác và chuẩn lắm, mong các bạn thông cảm. :oops:
- Dùng WinHttp theo mình thì đây là phương thức gửi nhận dữ liệu mạng không cần qua 1 cái Web Browser trung gian. Ví dụ bình thường bạn muốn tải nhạc, bạn vào Chrome, vào ZingMp3, lựa bài muốn tải, bấm Tải về. Còn khi dùng WinHttp, đơn giản, bạn code 1 chương trình gửi 1 thông tin đến ZingMp3 rằng bạn muốn tải bài đó và nhận dữ liệu gửi về, không cần qua một chương trình nào khác nữa.
- Đây là bài viết dành cho những ai đang mới bắt đầu tìm hiểu về WinHttp, mình thì chỉ nắm những cái gọi là cơ bản thôi, nói chung là vừa đủ xài để ra cái kết quả cuối cùng hay nói nôm na là thực hành nhiều để ra cái kinh nghiệm, chứ về lý thuyết, trả lời các câu hỏi tại sao, vì sao phải làm như vậy thì…mình không biết. :p



B/ CÁC YÊU CẦU ĐẦU TIÊN

1- Trong bài hướng dẫn, toàn bộ thông tin gửi nhận request mình dùng addon Live HTTP Headerstrên Firefox để xem. Nếu chưa cài bạn có thể vào đây tải về:




2- Tải về UDF _HttpRequest: http://q.gs/DsrBE


3- Tải về Tập tin trợ giúp _HttpRequest Help.chmhttp://q.gs/Dssia
Giờ đây tất cả hướng dẫn, mẹo vặt, code... mình đều đã tổng hợp toàn bộ trong file Help này. Hy vọng nó sẽ giúp ích thật nhiều cho các bạn trong việc học về request bằng WinHttp.​


4- Cài CallTips cho SciTE: Việc này khá quan trọng bởi vì số lượng hàm là rất nhiều, calltips sẽ giúp ích cho việc code nhanh chóng hơn và không mất nhiều thời gian để nhớ đến tên hàm. Thực hiện cài calltips như sau:
  • Mở file _HttpRequest_Help.chm đã tải ở link trên.
  • Vào mục Introduction.
  • Vào mục CallTips.
  • Làm theo hướng dẫn đã nói rất rõ trong mục CallTips vừa mở.


5- Đọc kỹ hướng dẫn về StringRegExp (tách chuỗi) bởi nó sẽ được sử dụng rất nhiều khi làm về request. Ít nhất phải nắm được căn bản của hàm StringRegExp mới có thể đọc hiểu các ví dụ và thực hành. File _HttpRequest_Help.chm đã có 2 bài viết về StringRegExp, 1 bài đơn giản là do mình viết, một bài là do lazycat (diễn đàn hocautoit.com cũ) viết.


6- Đọc thật kỹ nội dung _HttpRequest_Help.chm về hàm chính _HttpRequest và các tham số của nó điều này hết sức quan trọng vì đây là hàm chủ chốt thực hiện request và liên quan đến tất cả các hàm bổ trợ còn lại của UDF.


OK, đó là 6 điều cần làm trước khi đi tiếp vào con đường request rắc rối này.
File _HttpRequest_Help.chm đã bao gồm:
  • Ví dụ mẫu trong tất cả các hướng dẫn sử dụng các hàm trong UDF.
  • Phần Practice cung cấp những bài tập request từ cơ bản đến phức tạp hơn.



Để chạy thử code mẫu, bạn có thể bấm nút Copy To Clipboard như đã thấy ở hình trên rồi paste vào SciTe là xong.


Các Bài Viết Liên Quan:
- Phiên bản _HttpRequest dựa trên nền tảng Object Winhttp.WinhttpRequest5.1:
http://autoitvn.com/threads/_httpre...object-nho-gon-hon-nhanh-hon-v.598/#post-2268
- Login vào trang không login thuần tuý mà theo kiểu upload: http://autoitvn.com/threads/update-...nh-cac-buoc-lam-chi-tiet.267/page-4#post-2108
- Tương tác với trang web thông qua API mà trang đó cung cấp:
http://autoitvn.com/threads/api-web-va-autoit.492/#post-1909
- Authorization các dịch vụ Google APIs:
http://autoitvn.com/threads/get-acc...-tuong-tac-google-apis-nhu-gmail-youtube.631/
Tương tác với Facebook bằng WinHttp (Tác giả: Nguyễn Quốc Tuấn)
http://autoitvn.com/threads/tuong-tac-voi-facebook-bang-winhttp.483/
HttpRequest cho người mới bắt đầu - Ví dụ, hình ảnh, các bước làm chi tiết HttpRequest cho người mới bắt đầu - Ví dụ, hình ảnh, các bước làm chi tiết Reviewed by DOAN TRI on tháng 9 17, 2017 Rating: 5

Không có nhận xét nào:

Được tạo bởi Blogger.