Gửi một yêu cầu HTTP

C++:
Gửi một yêu cầu HTTP

Cách thực hiện:

#include <iostream>
#include <cpr/cpr.h> // Đảm bảo đã cài đặt thư viện CPR trước

int main() {
    cpr::Response r = cpr::Get(cpr::Url{"http://httpbin.org/get"});
    std::cout << r.text << std::endl; // Xuất phản hồi
    return 0;
}

Dữ liệu xuất ra mẫu:

{
  "args": {},
  "headers": {
    "Accept": "*/*",
    "Host": "httpbin.org",
    "User-Agent": "curl/7.64.1"
  },
  "origin": "0.0.0.0",
  "url": "https://httpbin.org/get"
}

Sâu hơn

Yêu cầu HTTP đã trở nên quan trọng kể từ khi web ra đời; chúng tuân theo mô hình client-server. Trước khi có thư viện C++ như CPR, việc gửi yêu cầu HTTP thường có nghĩa là sử dụng trực tiếp libcurl, hoặc tích hợp với ngôn ngữ khác tốt hơn cho giao tiếp web.

CPR, viết tắt của C++ Requests, là một bộ wrapper dễ sử dụng được truyền cảm hứng từ mô-đun requests của Python. Nó trừu tượng hóa nhiều phức tạp của libcurl. Vẫn còn tồn tại các lựa chọn khác, như Boost.Beast cho thao tác HTTP/S cấp thấp hơn, hoặc thư viện POCO cung cấp khả năng di động.

Khi đi sâu vào bên trong, việc gửi một yêu cầu HTTP bao gồm việc thiết lập một kết nối TCP, định dạng một yêu cầu tuân thủ với giao thức HTTP, sau đó phân tích phản hồi. Làm điều này đúng ngay từ đầu không phải là một việc đơn giản do xử lý lỗi, phức tạp của phiên bản HTTP, và các xem xét về an ninh.

Tham khảo thêm