Tetapan proksi PHP SoapClient untuk WSDL dan panggilan perkhidmatan
Konfigurasikan pilihan proksi PHP SoapClient untuk memuatkan WSDL dan panggilan perkhidmatan tanpa menyuntik kelayakan ke dalam User-Agent.
Pemuatan WSDL jauh boleh berlaku di dalam pembina SoapClient. Berikan proksi sebelum pengambilan pertama itu:
$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,
]);Gunakan WSDL sebenar, hos/port proksi dan sumber kelayakan yang dimaksudkan. Medan hos ialah alamat, portnya berasingan.
| Apabila ia gagal | Permintaan atau operasi untuk diperiksa |
|---|---|
| Pembinaan klien | Pengambilan WSDL atau pemprosesan dokumen. |
| Pemprosesan dokumen/skema yang diimport | URL pengambilan tambahan sebenar. |
| Panggilan kaedah SOAP | Titik akhir perkhidmatan yang diisytiharkan dalam WSDL, mungkin pada hos lain. |
Proses yang menggunakan WSDL cache mungkin melangkau permintaan yang gagal pada mesin lain. Simpan konfigurasi cache dan URL yang sebenarnya gagal bersama perbandingan, bukannya menukar proksi hanya berdasarkan kejayaan pembinaan.
proxy_login/proxy_password mengesahkan perantara. login/password destinasi dan pengesahan perkhidmatan pada peringkat SOAP melayani lapisan lain. Gunakan pilihan khusus dan bukannya meletakkan pengepala seperti akaun ke dalam User-Agent; pengepala aplikasi yang diperlukan tergolong dalam antara muka pengepala yang disokong.
Rekodkan operasi, sasaran dan pihak yang mengeluarkan cabaran dengan rahsia dibuang. connection_timeout mengehadkan pembentukan sambungan, bukan tempoh penuh operasi SOAP yang panjang.