Я пытаюсь разобрать ответ SOAP
с сервера. Я 100% новичок в SOAP
и довольно новый для общения с использованием HTTP
/HTTPS
. Я использую Python 2.7 на Ubuntu 12.04.Анализ SOAP-ответа в Python
Похоже, SOAP
очень похож на XML
. Однако, похоже, я не могу разобрать его как таковой. Я пытался использовать ElementTree
, но продолжаю получать ошибки. Из поисков я смог сделать вывод, что могут возникнуть проблемы с тегами SOAP
. (Я мог бы быть здесь.)
Итак, вот пример сообщения SOAP
, которое у меня есть и что я пытаюсь его проанализировать (это актуально сервер от Link Point Gateway, если это имеет значение).
import xml.etree.ElementTree as ET
soap_string = '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><fdggwsapi:FDGGWSApiOrderResponse xmlns:fdggwsapi="http://secure.linkpt.net/fdggwsapi/schemas_us/fdggwsapi"><fdggwsapi:CommercialServiceProvider/><fdggwsapi:TransactionTime>Wed Jul 25 10:26:40 2012</fdggwsapi:TransactionTime><fdggwsapi:TransactionID/><fdggwsapi:ProcessorReferenceNumber/><fdggwsapi:ProcessorResponseMessage/><fdggwsapi:ErrorMessage>SGS-002303: Invalid credit card number.</fdggwsapi:ErrorMessage><fdggwsapi:OrderId>1</fdggwsapi:OrderId><fdggwsapi:ApprovalCode/><fdggwsapi:AVSResponse/><fdggwsapi:TDate/><fdggwsapi:TransactionResult>FAILED</fdggwsapi:TransactionResult><fdggwsapi:ProcessorResponseCode/><fdggwsapi:ProcessorApprovalCode/><fdggwsapi:CalculatedTax/><fdggwsapi:CalculatedShipping/><fdggwsapi:TransactionScore/><fdggwsapi:FraudAction/><fdggwsapi:AuthenticationResponseCode/></fdggwsapi:FDGGWSApiOrderResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>'
targetTree = ET.fromstring(soap_string)
Это дает следующее сообщение об ошибке:
unbound prefix: line 1, column 0
С другой StackOverflow post я сделал вывод, что SOAP-ENV:Body
может быть причиной проблемы пространства имен. (Я мог ошибаться.)
Я проделал другие поиски, чтобы найти хорошее решение для синтаксического анализа SOAP
, но большинство из них от 3 лет назад. Кажется, что suds очень рекомендуется. Я хотел получить «обновленные» рекомендации, прежде чем я слишком далеко продвинулся по пути.
Может ли кто-нибудь порекомендовать прочный (и простой) способ разобрать ответ SOAP
, как тот, который я получил выше? Было бы признательно, если бы вы могли представить простой пример, чтобы начать меня (как я сказал выше, я совершенно не знаком с SOAP
).
К сожалению, я заметил это раньше и забыл обновить вопрос. – Rico
Редактированный вопрос и пример для меня работают. Я не получаю эту ошибку ... Что-то не хватает? – Tisho
Я так не думаю ... Я, должно быть, просто пропустил первый конверт. = -/ – Rico