Trong một yêu cầu Guzzle 7 dùng trình xử lý cURL, mảng tùy chọn curl cấp thấp dùng các hằng số CURLOPT nguyên của PHP làm khóa:

$options = [
    'curl' => [
        CURLOPT_PROXY => 'proxy.example',
        CURLOPT_PROXYPORT => 8080,
    ],
];

Giữ khóa ngoài 'curl' của Guzzle trong dấu ngoặc kép. Đừng đặt CURLOPT_PROXY hay CURLOPT_PROXYPORT trong dấu ngoặc kép. Viết 'CURLOPT_PROXY' tạo ra một chuỗi thông thường mang tên đó; PHP không chuyển nó thành giá trị số của hằng số.

Sự khác biệt này giải thích cảnh báo của curl_setopt_array rằng khóa phải là hằng số CURLOPT hoặc số nguyên tương đương. Hãy kiểm tra hình dạng của mảng trước khi đổi địa chỉ hoặc tài khoản proxy: cảnh báo đó nói về việc cấu hình trình xử lý, không phải bằng chứng rằng proxy từ xa đã từ chối kết nối.

Khi không cần hành vi cURL cấp thấp, tùy chọn yêu cầu thông thường của Guzzle đơn giản hơn:

$options = [
    'proxy' => 'http://proxy.example:8080',
];

Chọn giao diện mong muốn và giữ các kiểu khóa của nó nhất quán. Khi hình dạng đó hợp lệ, một mục HTTP từ danh sách proxy HTTP có thể cung cấp điểm cuối cho yêu cầu được phép tới URL công khai mà không cần tài khoản proxy. Mảng curl cấp thấp yêu cầu trình xử lý cURL; một trình xử lý khác không trở thành cURL chỉ vì mảng đó hiện diện.

Bài viết liên quan