Cài đặt proxy PHP SoapClient cho WSDL và các lệnh gọi dịch vụ
Định cấu hình tùy chọn proxy của PHP SoapClient để tải WSDL và gọi dịch vụ mà không chèn thông tin xác thực vào User-Agent.
Việc tải WSDL từ xa có thể diễn ra bên trong hàm khởi tạo của SoapClient. Cung cấp proxy trước lần truy xuất đầu tiên đó:
$client = new SoapClient('https://service.example.com/api?wsdl', [
'proxy_host' => '203.0.113.10',
'proxy_port' => 8080,
'proxy_login' => getenv('PROXY_USER'),
'proxy_password' => getenv('PROXY_PASSWORD'),
'connection_timeout' => 5,
'exceptions' => true,
]);Dùng WSDL thật, máy chủ/cổng proxy và nguồn thông tin xác thực dự kiến. Trường máy chủ là một địa chỉ, cổng của nó tách riêng.
| Khi nó thất bại | Yêu cầu hoặc thao tác cần kiểm tra |
|---|---|
| Tạo máy khách | Truy xuất WSDL hoặc xử lý tài liệu. |
| Xử lý tài liệu/schema được nhập | URL truy xuất bổ sung thực tế. |
| Lệnh gọi phương thức SOAP | Điểm cuối dịch vụ khai báo trong WSDL, có thể trên máy chủ khác. |
Tiến trình dùng WSDL đã lưu trong bộ nhớ đệm có thể bỏ qua yêu cầu thất bại trên máy khác. Giữ cấu hình bộ nhớ đệm và URL thực sự thất bại cùng với so sánh, thay vì đổi proxy chỉ dựa trên việc tạo thành công.
proxy_login/proxy_password xác thực trung gian. login/password đích và xác thực dịch vụ ở tầng SOAP phục vụ các lớp khác. Dùng các tùy chọn chuyên dụng thay vì đặt tiêu đề giống tài khoản vào User-Agent; các tiêu đề ứng dụng cần thiết thuộc về giao diện tiêu đề được hỗ trợ.
Ghi lại thao tác, mục tiêu và bên phát hành thách thức khi đã loại bỏ bí mật. connection_timeout giới hạn việc thiết lập kết nối, không phải toàn bộ thời lượng của một thao tác SOAP dài.