Использование метода веб-сервиса PHP с логическим возвращаемым значением в .NET - PullRequest
3 голосов
/ 04 марта 2010

У меня есть метод веб-службы PHP SOAP (NuSOAP), который возвращает логическое значение. Я выполнил метод в стороннем тестовом приложении, и, похоже, он возвращает значение отлично. Если я смотрю прямо на возвращаемое сообщение XML, оно тоже выглядит нормально - возвращает «true» и «false», когда это должно быть.

Однако, когда я пишу пример приложения в .NET 2.0 для использования метода веб-службы, он всегда возвращает false. Если возвращаемое значение запрашивается как логическое значение, оно всегда ложно. Если это запрашивается как строка, я получаю пустую строку. Как ни странно, когда я использую фиктивную службу SOAP для возврата точно такого же ответа SOAP, .NET способна правильно его проанализировать. Итак, моя текущая теория заключается в том, что проблема не в самом ответе, а в заголовках - что-то другое в том, что делает PHP.

Кто-нибудь знает, что здесь происходит? Это известная проблема с реализацией SOAP в PHP?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 26 марта 2010

Похоже, что эта проблема является неправильным сообщением на стороне потребителя, но в целом я бы рекомендовал вам отказаться от NuSOAP (действительно старый !!) и использовать PHP-библиотеку SOAP. Это намного приятнее и мощнее, и это может просто решить вашу проблему с помощью магии.

0 голосов
/ 05 марта 2010

Я не уверен на 100%, является ли это ошибкой PHP, но я помню, что мне пришлось специально кодировать типы с помощью SoapVar ($ var, TYPE).

Хотя я не использовал NuSOAP, я думаю, что просто встроенная в PHP библиотека SOAP.

Если вы этого не делаете, это может быть причиной вашей проблемы. Если да, то у меня мало идей!

...