#php #soap #wsdl #netsuite
#php #мыло #wsdl #netsuite
Вопрос:
Мне нужно получить доступ к netsuite wsdl. Я загрузил php toolkit
данные, предоставленные командой netsuite по следующему URL-адресу http://www.netsuite.com/portal/developers/resources/suitetalk-sample-applications.shtml
Я включил расширение php_openssl и php_soap.
Когда я получаю доступ к https://webservices.netsuite.com/wsdl/v2018_2_0/netsuite.wsdl url-адрес показывает фатальную ошибку: Неперехваченное исключение SoapFault: [WSDL] SOAP-ОШИБКА: синтаксический анализ WSDL: не удалось загрузить. Когда я получаю доступ к URL-адресу из браузера, загружается wsdl, поэтому блокировка брандмауэра отсутствует
Я попробовал следующие варианты
// Option 1
$options['stream_context'] = stream_context_create(array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
));
// Option 2
$options['stream_context'] = stream_context_create([
'ssl' => [
'crypto_method' => STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT,
],
]);
//Option 3
$context = stream_context_create(
[
'ssl' => [
'ciphers' => 'DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA:KRB5-DES-CBC3-MD5:KRB5-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:DES-CBC3-SHA:DES-CBC3-MD5:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:AES128-SHA:RC2-CBC-MD5:KRB5-RC4-MD5:KRB5-RC4-SHA:RC4-SHA:RC4-MD5:RC4-MD5:KRB5-DES-CBC-MD5:KRB5-DES-CBC-SHA:EDH-RSA-DES-CBC-SHA:EDH-DSS-DES-CBC-SHA:DES-CBC-SHA:DES-CBC-MD5:EXP-KRB5-RC2-CBC-MD5:EXP-KRB5-DES-CBC-MD5:EXP-KRB5-RC2-CBC-SHA:EXP-KRB5-DES-CBC-SHA:EXP-EDH-RSA-DES-CBC-SHA:EXP-EDH-DSS-DES-CBC-SHA:EXP-DES-CBC-SHA:EXP-RC2-CBC-MD5:EXP-RC2-CBC-MD5:EXP-KRB5-RC4-MD5:EXP-KRB5-RC4-SHA:EXP-RC4-MD5:EXP-RC4-MD5',
],
]);
Также отключен wsdl_cache
Но, похоже, ничего не получается. Дайте мне знать, как получить к нему доступ, какие параметры я должен установить в soapclient
Комментарии:
1. Если вы используете toolkit, нет необходимости использовать SoapClient или WSDL напрямую вообще. Ознакомьтесь с примерами для примера использования.
Ответ №1:
Добавление http_proxy и http_port решило проблему. В браузере мы настроили прокси и порт, следовательно, загрузился wsdl.