Ruby open-uri: cấu hình xác thực Basic qua proxy
Dùng tùy chọn xác thực proxy riêng của open-uri mà không trộn với thông tin đăng nhập của đích đến hay giá trị mặc định của môi trường.
Với tài khoản trung gian, hãy dùng tùy chọn Basic proxy riêng của open-uri:
require 'open-uri'
body = URI.open(
'https://example.com/',
proxy_http_basic_authentication: [
'http://203.0.113.10:8080',
ENV.fetch('PROXY_USER'),
ENV.fetch('PROXY_PASSWORD')
],
open_timeout: 5,
read_timeout: 10
) { |response| response.read }Thay điểm cuối trong tài liệu và lấy giá trị tài khoản từ nguồn bí mật dự định. Đừng đặt mật khẩu trong URL mà sau này một ngoại lệ hoặc báo cáo hỗ trợ có thể in ra.
| Tùy chọn OpenRead | Công dụng |
|---|---|
proxy_http_basic_authentication | Địa chỉ proxy và tên người dùng/mật khẩu Basic của nó. |
proxy | Chọn proxy mà không dùng tùy chọn xác thực kết hợp đó; cung cấp cả hai sẽ gây lỗi đối số. |
http_basic_authentication | Tài khoản của máy chủ đích. |
proxy: nil | Hãy để lần đọc này diễn ra trực tiếp dù có giá trị mặc định của môi trường. |
Không có tùy chọn proxy rõ ràng, open-uri có thể dùng biến môi trường proxy riêng cho scheme. Tùy chọn đã xác thực vốn đã bao gồm điểm cuối của nó; nó không cần giá trị proxy thứ hai.
Giao diện này xử lý xác thực Basic qua proxy. Dịch vụ yêu cầu cơ chế khác cần một client tương thích hoặc tích hợp đã được phê duyệt. Giữ bật kiểm tra HTTPS, sau đó kiểm tra trạng thái/nội dung cho phù hợp: đăng nhập proxy thành công không chứng minh rằng đích đã trả về tài nguyên mong đợi.