2009-03-18 3 views
1

У меня есть скрипт PHP, который работает, и мне нужно написать то же самое в Python, но SOAPpy генерирует несколько другой запрос, и я не уверен, как его исправить, чтобы серверу понравилось.Как получить доступ к веб-службам Yahoo Enterprise с помощью SOAPpy Python?

Запрос генерируется PHP скрипт выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:ns1="http://marketing.ews.yahooapis.com/V4" 
> 
<SOAP-ENV:Header> 
<ns1:username>*****</ns1:username> 
<ns1:password>*****</ns1:password> 
<ns1:masterAccountID>*****</ns1:masterAccountID> 
<ns1:accountID>6674262970</ns1:accountID> 
<ns1:license>*****</ns1:license> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
<ns1:getCampaignsByAccountID> 
<ns1:accountID>6674262970</ns1:accountID> 
<ns1:includeDeleted>false</ns1:includeDeleted> 
</ns1:getCampaignsByAccountID> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

При попытке сделать то же самое с помощью SOAPpy я получаю этот запрос:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope 
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/1999/XMLSchema" 
> 
<SOAP-ENV:Header> 
<username xsi:type="xsd:string">*****</username> 
<masterAccountID xsi:type="xsd:string">*****</masterAccountID> 
<license xsi:type="xsd:string">*****</license> 
<accountID xsi:type="xsd:integer">6674262970</accountID> 
<password xsi:type="xsd:string">*****</password> 
</SOAP-ENV:Header> 
<SOAP-ENV:Body> 
<ns1:getCampaignsByAccountID xmlns:ns1="http://marketing.ews.yahooapis.com/V4"> 
<includeDeleted xsi:type="xsd:boolean">False</includeDeleted> 
<accountID xsi:type="xsd:integer">6674262970</accountID> 
</ns1:getCampaignsByAccountID> 
</SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

несколько иной запрос, но я предполагаю, что это должно работаю, но я получаю сообщение об ошибке с сервера: «Идентификатор учетной записи, указанный в заголовке

не соответствует указанному в параметре».

Но они соответствуют!

Единственное, что я вижу, это некоторая разница в пространствах имен, но я понятия не имею, что делать прямо сейчас. Пожалуйста помоги.

ответ

0

accountID должен иметь тип xsd: string, а не xsd: integer. (возможно, вы передаете строку вместо целого числа, и именно поэтому SOAPpy делает это именно так)

+0

Я попытался передать его как строку, к тому же, к сожалению. Но спасибо за ответ в любом случае :) Крайний срок подходит, поэтому я пытаюсь работать без SOAPpy. – Andrey

 Смежные вопросы

  • Нет связанных вопросов^_^