HTTP-сообщение Python с заголовками и данными XML - PullRequest
0 голосов
/ 03 февраля 2019

Я пытаюсь удаленно выключить телевизор, и следующий вызов curl работает как чудо:

curl -v -XPOST http://[your_TV's_IP_address]/sony/IRCC -d '<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"><IRCCCode>AAAAAQAAAAEAAAAVAw==</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>' -H 'Content-Type: text/xml; charset=UTF-8' -H 'SOAPACTION: "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC"' -H 'X-Auth-PSK: [your_PSK]'

Однако я не могу перенести это на вызов python.requests.post, так как явсегда получаю

Ошибка 500

в ответ.
Я должен делать что-то не так при передаче данных XML или заголовков запросам.

Вот мой код Python:

import requests

TurnOnOffcommandData = "<?xml version=&apos;1.0&apos;?><s:Envelope xmlns:s=&apos;http://schemas.xmlsoap.org/soap/envelope/&apos; s:encodingStyle=&apos;http://schemas.xmlsoap.org/soap/encoding/&apos;><s:Body><u:X_SendIRCC xmlns:u=&apos;urn:schemas-sony-com:service:IRCC:1&apos;><IRCCCode>AAAAAQAAAAEAAAAVAw==</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>"
TurnOnOffcommandHeaders = {'Content-Type': 'text/xml; charset=UTF-8', 'SOAPACTION': 'urn:schemas-sony-com:service:IRCC:1#X_SendIRCC', 'X-Auth-PSK': 'PASSWORD'}
requests.post('http://XX.XX.XX.XX/sony/IRCC', headers=TurnOnOffcommandHeaders, data=TurnOnOffcommandData)

Спасибо за любую помощь в этом вопросе.

...