У меня есть Zend_Soap_Server. Он должен быть протестирован. Одна проблема - модульные тесты и режимы разработки должны работать с различными базами данных. Это может быть сделано с помощью .htaccess:Может ли Zend_Soap_Client установить пользовательский агент?
SetEnvIfNoCase User-Agent (.*) APPLICATION_ENV=development
SetEnvIfNoCase User-Agent testing APPLICATION_ENV=testing
Это будет работать нормально для меня, я использую Zend_Soap_Client как в режиме разработки/производства, а также добавить дополнительный параметр для тестирования. В исходном коде для тестирования нет особых изменений. вопрос - я не могу установить пользовательский агент пользователя для (Zend_Soap_Client Кажется, этот параметр не поддерживаются или не документирован я попытался сделать то же самое с помощью mod_rewrite и добавления
new Zend_Soap_Client('...?wsdl&testing');
.
, но для поддержки тестирования Query_String требуется изменить Zend_Soap_Server, в противном случае мыльные действия не отражаются на «тестировании» за пределами wsdl.
Я согласен, что это немного больше связано с приемочным тестированием, а не единицы (у меня есть тесты для классов, таких как $server->setClass('classWS')
), но в любом случае мне это нужно, независимо от терминологии.
Итак, что будет работать нормально для меня это что-то вроде:
new Zend_Soap_Client($wsdl, array('useragent' => 'testing'));
в испытаниях.
Спасибо за ваш ответ! К сожалению, у меня есть $ _SERVER ['HTTP_USER_AGENT'] => "PHP-SOAP/5.2.6-3ubuntu4.2", даже если user_agent определен через stream_context_create (я пробовал оба ваших случая). Мое предположение, потому что: строка заголовка Дополнительные заголовки, которые будут отправлены во время запроса. Значения в этой опции переопределяют другие значения (такие как User-agent:, Host :, и Authentication :). Может быть, Zend добавляет параметр заголовка, но я не уверен – Alexey
Привет, Алексей, я добавил еще один вариант, который вы можете попробовать. Кажется, что пользовательский агент, прошедший через контекст потока, получает избыточность самим «SoapClient». –
Еще раз спасибо! Я понял, что опция ['http'] ['user_agent'] не влияет на собственный php SoapClient (так что Zend_Soap_Client сам по себе не является причиной). Я не уверен, что это желаемое поведение или нет, но в любом случае я думаю, что мне нужно просто сообщить команде Zend и спросить о том, чтобы включить параметр конструкции user_agent Zend_Soap_Client (потому что он будет работать нормально - я проверил). Во всяком случае, спасибо за ваше решение - он работает, даже если кажется не очень красивым! – Alexey