Sử dụng fiddler test web service

Sử dụng fiddler test web service
1.9 (38.46%) 26 vote[s]

Giới thiệu về Fiddler

Trong các bài viết trước các bạn đã biết cách tạo ra và sử dụng các web service mà cụ thể ở đây là wcf rest service và asp.net web api service. Nếu các bạn chưa biết vui lòng xem qua hai các bài viết sau:

Để có thể test được các service này thông thường bạn sẽ phải tạo ra các ứng dụng client như console app, desktop app hay mobile app và viết code để kết nối và sử dụng trực tiếp các service này. Điều này dẫn đến việc không test được trước các service nếu nó được viết bởi các lập trình viên khác vì vậy trong bài viết này tôi sẽ hướng dẫn các bạn cách thức test service sử dụng Fiddler. Đây là một tool của Telerik dùng để ghi lại các dữ liệu vào ra giữa máy tính của bạn và internet. Bên cạnh việc xem được các dữ liệu này, bạn còn có thể thay đổi các thông tin vào ra ra giữa máy tính một cách rất dễ dàng. Fiddler hỗ trợ rất nhiều loại browser khác nhau từ Internet Explorer, Google Chrome cho đến Safari, Firefox, Opera…

Để sử dụng Fiddler đầu tiên bạn cần download tại đường dẫn sau: http://www.telerik.com/fiddler

Sau khi cài đặt bạn có thể chạy và bắt các request/response vào ra giữa máy tính ngay.


Trong bài này chúng ta sẽ dùng Fiddler để test các Web API Service đã được tạo ở trong bài trước:

Hãy bắt đầu với loại service đơn giản nhất là GET dữ liệu.

GET dữ liệu bằng Fiddler

Với các GET service thì ngoài cách test sử dụng browser như bài trước thì chúng ta cũng có thể sử dụng Fiddler. VD nếu muốn test api trả về danh sách khách hàng chúng ta chỉ cần mở solution, chạy ứng dụng lên rồi từ browser navigate đến đường dẫn http://localhost:33753/api/Customers.

Sau đó ta quay lại Fiddler sẽ thấy 1 request đã được capture. Doucle-click request này chúng ta sẽ xem được chi tiết thông tin Request cũng như Response dạng JSON như hình dưới:

Chúng ta vừa test api trả về danh sách khách hàng, tiếp theo ta sẽ test api trả về một Customer từ Fiddler qua hai bước dưới đây:

  • Bước 1: Click vào tab Composer sau đó nhập vào URI http://localhost:33753/api/Customers/ALFKI
  • Bước 2: Click Execute như hình dưới:

Chúng ta sẽ thu được kết quả như sau:

POST dữ liệu bằng Fiddler

Đến đây chúng ta đã biết cách test GET service sử dụng browser hoặc Fiddler, tiếp theo chúng ta sẽ test các POST service. Để test các service này thì browser không thực hiện được nếu chúng ta không sử dụng Add-on nhưng với Fiddler thì cách thực hiện tương đối đơn giản qua các bước như dưới đây:

  • Bước 1: Mở tab Composer, mặc định Fiddler chọn HTTP verb là GET ta cần đổi nó sang POST.
  • Bước 2: Nhập URI vào thanh address địa chỉ của api service POST
  • Bước 3: Chỉ ra content-type cho request là JSON: Content-type: application/json
  • Bước 4: Nhập object json PUT lên vào Request Body như sau: {“CustomerID”:”TTung”, “CompanyName”:”Tung Nguyen”,”City”:”Ha Noi”}

  • Bước 5: Click Execute để thực hiện thêm Customer này. Muốn test xem dữ liệu đã được POST lên server chưa, ta đổi verb về GET và URI thành http://localhost:33753/api/Customers/TTung để lấy về Customer vừa mới thêm ta sẽ thấy kết quả trả về như hình dưới chứng tỏ là Customer đã được POST lên service thành công.

PUT dữ liệu bằng Fiddler

Chúng ta đã thêm xong dữ liệu bằng POST lên Fiddler các bước để cập nhật dữ liệu bằng PUT service cũng được thực hiện tương tự như sau:

  • Bước 1: Đổi verb từ POST sang PUT
  • Bước 2: Nhập URI của api service PUT là: http://localhost:33753/api/Customers/TTung
  • Bước 3: Nhập object json PUT lên vào Request Body như sau:{“CustomerID”:”TTung”, “CompanyName”:”Tung Nguyen New”,”City”:”Bac Giang”}
  • Bước 4: Click Execute để thực hiện sửa Customer và test dữ liệu xem đã cập nhật trên server hay chưa:

Delete dữ liệu bằng Fiddler

Để test các delete service đơn giản chúng ta chỉ cần thực hiện các bước sau:

  • Bước 1: Nhập URI Delete service
  • Bước 2: Đổi verb sang DELETE
  • Bước 3: Nhập content-type: application/json
  • Bước 4: Execute request

Đến đây nếu ta GET lại Customer vừa xóa chúng ta sẽ nhận được response 404 NotFound như hình dưới chứng tỏ là Customer đã bị xóa khỏi database.

Kết luận

Trong bài viết này tôi đã hướng dẫn các bạn cách test các web service bằng tool Fiddler. Đây là một tool rất mạnh của Telerik giúp cho chúng ta có thể test nhanh được các web service, cụ thể trong bài này là ASP.NET Web API service có hoạt động chính xác như ta mong muốn hay không. Bằng cách sử dụng Fiddler chúng ta không còn cần thiết phải xây dựng các app để test các REST service nữa mà chúng ta hoàn toàn có thể test các service này ngay trước khi xây dựng client app như desktop hoặc mobile app.

Nếu bạn có bất kì câu hỏi hay kinh nghiệm nào hãy chia sẻ bằng comment bên dưới bài viết và đừng quên chia sẻ cho bạn bè nếu thấy hữu ích.

Happy coding. Stay tuned.

Comments

  1. DungVan says

    Sao em up lên web, service chạy chậm lắm, k bik co fai do host free k. Nhưng cug 1 host đó e chạy cái wcf soap á. Nhanh lắm

    • tungnt185tungnt185 says

      Em thử test ở local xem service có nhanh không đã. Nếu vẫn nhanh thì chứng to do host và đường truyền thôi :)

  2. Ha Qui says

    Nếu web ko có API mình có thể đăng nhập được ko anh ? Vì 1 số website cần login thì mới cho get data. Anh hướng dẫn e login những web ko có API nhé. Thanks anh !

    • tungnt185tungnt185 says

      Hi Hà, anh chưa hiểu câu hỏi của em lắm. Thông thường nếu Web API yêu cầu login mới cho phép sử dụng thì em cần thực hiện login trước rồi mới làm như trên được.

      • Ha Qui says

        Hi anh, Ví dụ web xem điểm đại học chẳng hạn, không có hỗ trợ API vậy thì mình post như thế nào để login một trang như thế ?

        • tungnt185tungnt185 says

          Muốn get được dữ liệu từ 1 website thì trước tiên web đó phải cung cấp API và Account Login cho em thì mới làm đc, tức là admin site đó phải mở các api cho bên ngoài sử dụng. Còn nếu không thì chỉ có cách là Get HTML của trang đó về và tự xử lý để trích rút dữ liệu ra em ạ.

  3. Hoang Ngo xuan says

    Chao anh! EM muon hoi khi co tai khoan va pass cua api thi viet code the nao de login duoc vao cai api do a?

  4. Khánh says

    Em đang thực hiện post dữ liệu lên, nhưng khi làm thì fiddler báo về bị lỗi HTTP/1.1 400 Bad Request. Giờ xử lý ntn ạ?

    • tungnt185 says

      Hi Khánh,

      Lỗi này thường do định dạng request gửi lên không đúng cấu trúc json, em kiểm tra lại định dạng hoặc xem đã thêm header content-type application/json chưa.

      Regards.

      • Phuc says

        Chào anh,
        E post lên không được ạ. Đã thêm header content-type application/json, nhưng vẫn báo lỗi. Mong a hướng dẫn thêm
        XIn cảm ơn

        • tungnt185 says

          Hi Phúc, em kiểm tra lại định dạng gói tin gửi lên đúng như vậy không nhé. Thường lỗi này là do gói tin không đúng định dạng thôi.

  5. dũng says

    a có vi deo hưỡng dẫn hay tài liệu bằng TIẾNG VIỆT về chức năng cơ bản của fiddler ko ạ

    • tungnt185 says

      Chào Dũng,

      Anh không có tài liệu Tiếng Việt em ạ.
      Nếu thời gian tới có thời gian anh sẽ viết chi tiết hơn về tool này.
      Em hãy subsribe để nhận được thông báo bài viết mới nhé.

      Thanks em

  6. Lân Nguyễn says

    hi admin,

    Cho mình hỏi có tool nào khác tool trên để test được full verb của API không?

  7. Lan Nguyen says

    Hi admin,

    Nếu Web API mình có sử dụng như sau:

    // Restrict by user:
    [Authorize(Users=”Alice,Bob”)]
    public class ValuesController : ApiController
    {
    }

    // Restrict by role:
    [Authorize(Roles=”Administrators”)]
    public class ValuesController : ApiController
    {
    }

    Hoặc thêm lớp bảo mật Token cho Header

    response.Headers.Add(“Token”, token.AuthToken);
    response.Headers.Add(“TokenExpiry”, ConfigurationManager.AppSettings[“AuthTokenExpiry”]);
    response.Headers.Add(“Access-Control-Expose-Headers”, “Token,TokenExpiry” );
    return response;

    Nếu dùng tool Fiddler để test Web API như thế nào? Admin vui lòng hướng dẫn giúp nha! Cám ơn Admin!

    • tungnt185 says

      Hi Lan,

      Bạn cần phải authenticate trước để có token xong gửi token ở các lần request test service sau là được.

      Regards

    • lan.nguyen says

      Hi Tungnt,

      Bạn chưa hiểu ý tui rồi, ý tui muốn bạn hướng dẫn tui cách sử dụng tool Fiddler để test Web API có Authorize và Token.

      Thanks!

      • tungnt185 says

        Ở trên là mình đang hướng dẫn bạn đấy. Bạn thực hiện 1 request đầu tiên để lấy token. Sau đó bổ sung token vào header ở các request sau là sẽ authenticate được các service đó.

        Regards

  8. dai nguyen says

    anh cho em hỏi phần mềm này có lấy được link gốc video ở web không ạ

    • tungnt185 says

      Hi bạn, tùy trang web, tùy link nó xử lý như thế nào thì mới biết lấy được hay không em ạ.
      Cứ thử dùng để bắt những trang cần lấy link xem có đáp ứng được nhu cầu của em không.

      Regards

Trackbacks

Leave a Reply to tungnt185 Cancel reply

Your email address will not be published. Required fields are marked *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.