HTTParty nhận proxy chuyển tiếp dưới dạng tùy chọn của yêu cầu. Giữ URL của dịch vụ làm đối số đầu tiên:

response = HTTParty.get(
  'https://api.example/items',
  http_proxyaddr: 'proxy.example',
  http_proxyport: 8080,
  http_proxyuser: ENV.fetch('PROXY_USER'),
  http_proxypass: ENV.fetch('PROXY_PASSWORD'),
  headers: { 'Authorization' => "Bearer #{ENV.fetch('API_TOKEN')}" },
  open_timeout: 5,
  read_timeout: 15
)
puts response.code

Máy chủ và cổng proxy chỉ ra bên trung gian. Tên người dùng và mật khẩu proxy được xác thực tại đó. Tiêu đề Authorization thuộc về API, mà tài khoản của nó có thể hoàn toàn khác.

Với proxy không cần xác thực, hãy bỏ http_proxyuser và http_proxypass. Với yêu cầu API công khai trên tuyến công khai được phép, lấy một địa chỉ HTTP từ danh sách proxy HTTP mà không giữ thông tin đăng nhập proxy trong yêu cầu hay trong giá trị mặc định của lớp. Trường máy chủ được truyền như địa chỉ proxy cho Net::HTTP; cung cấp tên máy chủ tách khỏi cổng của nó, không phải URL đích hay URL PAC.

Một lớp bao bọc có include HTTParty có thể thay vào đó dùng phương thức lớp http_proxy để đặt giá trị mặc định. Tùy chọn của yêu cầu ghi đè các giá trị mặc định đó cho lần gọi cung cấp chúng.

Điều này mô tả bộ điều hợp kết nối mặc định của HTTParty. Một connection_adapter tùy chỉnh chịu trách nhiệm diễn giải các tùy chọn của nó, vì vậy hãy kiểm tra bộ điều hợp đó khi một thiết lập hợp lệ có vẻ bị bỏ qua. Đọc trạng thái HTTP tách biệt khỏi dữ liệu API đã phân tích; phân tích JSON thành công không phải là kết quả xác thực.

Bài viết liên quan