Добрый день, коллеги.
Столкнулся с проблемой при написании soap клиента.
Есть готовый вариант на php:
<?php
1. $client = new SoapClient('https://xx.xx.xx.xx/service/?wsdl');
2. $headers = array();
3. $headers[] = new SoapHeader('http://localhost/auth','Login','admin');
4. $headers[] = new SoapHeader('http://localhost/auth','Password','admin');
5. $client->__setSoapHeaders($headers);
6. $table_hi = $client->getTableByTitle('SomeTable');
7. $row_data = array(
8. array(
9. array(
10. 'name' => 'number',
11. 'value' => '55555555'
12. ),
13. array(
14. 'name' => 'data',
15. 'value' => '20140306185014'
16. ),
17. )
18. );
19. $rowset=$client->insertRowset($table_hi, $row_data);
20. ?>
Пытаюсь переписать все это дело на python. (Ключевое слово здесь "пытаюсь".)
Натолкнулся на питоновскую библиотеку suds(если есть другие актуальные библиотеки, буду рад за наводку)
По аналогии с клиентом на php начал переписывать.
from suds.client import Client
from suds.xsd.doctor import ImportDoctor, Import
imp = Import('http://schemas.xmlsoap.org/soap/encoding/')
d = ImportDoctor(imp)
client = Client(url='https://xx.xx.xx.xx/service/?wsdl', doctor=d)
client.set_options(soapheaders=['http://localhost/auth','Login','admin'])
client.set_options(soapheaders=['http://localhost/auth','Password','admin'])
result = client.service.getTableByTitle('SomeTable')
В php клиенте в заголовок soap передается массив с данными аутентификации, не смог найти примера как это реализовать на suds, пробывал по-разному. Все время вылетает ошибка suds.WebFault: Server raised fault: 'Wrong parameters for authorization'
Я не силен в веб-сервисах, если есть ссылка на исчерпывающий источник, в студию, пожалуйста.
Подскажите куда копать?