Câu hỏi phỏng vấn ASP.NET Web API
Câu hỏi

Giải thích về HttpResponseMessage?

Câu trả lời

HttpResponseMessage là một lớp trong .NET Framework và .NET Core dùng để biểu diễn một thông điệp phản hồi HTTP bao gồm mã trạng thái và dữ liệu. Lớp này cung cấp nhiều thuộc tính và phương thức để quản lý thông tin phản hồi từ máy chủ web đến máy khách.

Các thuộc tính quan trọng của HttpResponseMessage bao gồm:

  • StatusCode: Lưu mã trạng thái HTTP của phản hồi, ví dụ như HttpStatusCode.OK cho mã 200 hoặc HttpStatusCode.NotFound cho mã 404[1][4][7][15].
  • Content: Lưu nội dung của thông điệp phản hồi, có thể là văn bản, JSON, XML, hoặc các dạng dữ liệu khác[1][4][11][15].
  • Headers: Chứa các tiêu đề phản hồi HTTP[4][15].
  • ReasonPhrase: Lưu cụm từ lý do đi kèm với mã trạng thái, thường được gửi bởi máy chủ[4][15].
  • RequestMessage: Lưu thông điệp yêu cầu đã dẫn đến thông điệp phản hồi này[4][15].

Các phương thức quan trọng của HttpResponseMessage bao gồm:

  • EnsureSuccessStatusCode(): Kiểm tra xem mã trạng thái có nằm trong khoảng thành công (200-299) hay không và nếu không, phương thức này sẽ ném ra một ngoại lệ[3][4][15][18].
  • Dispose(): Giải phóng các tài nguyên không quản lý và hủy các tài nguyên được quản lý sử dụng bởi HttpResponseMessage[4][15].

HttpResponseMessage thường được sử dụng trong ASP.NET Web API để tạo ra và quản lý phản hồi HTTP. Nó cho phép các nhà phát triển đặt mã trạng thái, nội dung phản hồi, và các tiêu đề phản hồi một cách linh hoạt. Điều này giúp kiểm soát chặt chẽ hơn đối với thông điệp phản hồi, từ đó có thể cung cấp thông tin chi tiết hơn cho máy khách hoặc xử lý các tình huống lỗi một cách tốt hơn[5][8][12][13][16][17][19].

Ví dụ, khi một hành động trong Web API trả về một đối tượng HttpResponseMessage, Web API sẽ chuyển đổi giá trị trả về trực tiếp thành một thông điệp phản hồi HTTP, sử dụng các thuộc tính của đối tượng HttpResponseMessage để điền vào phản hồi[8].

Citations:
...

junior

junior

Gợi ý câu hỏi phỏng vấn

middle

Liệt kê các loại Action Results trong Web API 2

expert

Sự khác biệt giữa WCFWeb APIWCF RESTWeb Service là gì?

senior

Sự khác biệt giữa OpenIDOAuth là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào