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 gagalPermintaan atau operasi untuk diperiksa
Pembinaan klienPengambilan WSDL atau pemprosesan dokumen.
Pemprosesan dokumen/skema yang diimportURL pengambilan tambahan sebenar.
Panggilan kaedah SOAPTitik 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.

Artikel berkaitan