Я выполняю метод веб-службы SOAP, который получает 3 строковых аргумента с библиотекой suds.
Первый строковый аргумент должен быть XML, а 2 других - именем пользователя и паролем, это мои полурабочая реализация.
from suds.client import Client
url = "http://www.jonima.com.mx:3014/sefacturapac/TimbradoService?wsdl"
client = Client(url)
client.service.timbrado(XML_AS_STRING_HERE, 'PRUEBA1', '12345678')
Когда первый параметр содержит экранированный символ (амперсанд, кавычки, апостроф, меньше чем, больше чем), метод не работает, поскольку сервер интерпретирует текст так, как если бы он был экранированным.Если не содержит ни одного из этих символов, метод прекрасно работает
Пример XML без амперсанда http://dl.dropbox.com/u/1990697/no_amp.xml
Пример XML с амперсандом не работает http://dl.dropbox.com/u/1990697/with_amp.xml
Любая идея, как я могу передать XML с экранированными символами?
Не нужно полагаться на пену, а на python.Я использую Python 2.6 (как это может быть с 2.7, если требуется)
Я также использую Django Framework, не знаю, может ли это быть полезно.
Дополнительная информация:
- У меня нет доступа для изменения сервера SOAP
- Служба поддержки сказала, что мой xml верен и что он работает для них, поэтому ошибка в моей реализации (или где-то впена?)