Вызовите веб-службу Python с помощью PHP

Код веб-службы Python:

import web from soaplib.wsgi_soap import SimpleWSGISoapApp from soaplib.service import soapmethod from soaplib.serializers import primitive as soap_types urls = ("/hello", "HelloService", "/hello.wsdl", "HelloService", ) render = web.template.Template("$def with (var)\n$:var") class SoapService(SimpleWSGISoapApp): """Class for webservice """ @soapmethod(soap_types.String,_returns=soap_types.String) def hello(self,message): """ Method for webservice""" return "Hello world "+message class HelloService(SoapService): """Class for web.py """ def start_response(self,status, headers): web.ctx.status = status for header, value in headers: web.header(header, value) def GET(self): response = super(SimpleWSGISoapApp, self).__call__(web.ctx.environ, self.start_response) return render("\n".join(response)) def POST(self): response = super(SimpleWSGISoapApp, self).__call__(web.ctx.environ, self.start_response) return render("\n".join(response)) app=web.application(urls, globals()) if __name__ == "__main__": app.run() 

Код PHP:

  • CMS или Framework?
  • MailChimp API 3.0 пакетная / массовая подписка
  • Получить xpath из результата поиска определенного шаблона регулярного выражения в кучке xml-файлов
  • Каковы преимущества (и недостатки) слабо типизированного языка?
  • Запуск python через fastCGI для nginx
  • Открытая онлайн-версия IDE
  •  <?php @ini_set("soap.wsdl_cache_enabled", "0"); $client = new SoapClient('http://localhost:8080/hello.wsdl'); echo("<pre>"); var_dump($client->__getFunctions()); echo("</pre>"); $params = array('World'); try { print_r($client->__soapCall('hello', $params)); } catch (SoapFault $exception) { echo $exception; } ?> 

    Когда я запускаю свой PHP-код, он сообщает информацию ниже

    Исключение SoapFault: [helloFault] hello () принимает ровно 2 аргумента (1 задано) в C: \ website \ cosmetics \ src \ test02.php: 15 Трассировка стека: # 0 C: \ website \ cosmetics \ src \ test02.php ( 15): SoapClient -> __ soapCall ('hello', Array) # 1 {main}

    Как решить эту проблему? Благодарю.

  • Как преобразовать массив numpy в базу данных pandas?
  • MySQL INSERT ... ON DUPLICATE KEY UPDATE с django 1.4 для объемной вставки
  • Заменить n-ое вхождение подстроки в строку
  • Как эффективно вычислить гауссовскую матрицу ядра в numpy?
  • Объединить и синхронизировать stdout и stderr?
  • Могу ли я ограничить вывод покрытия носа в каталог (а не пакет)?
  • One Solution collect form web for “Вызовите веб-службу Python с помощью PHP”

    Не уверен, что такое SoapClient, но похоже, что ему нужен еще один аргумент. Что говорит документация?

    Python - лучший язык программирования в мире.