Как я могу опубликовать XML с urllib3 - PullRequest
1 голос
/ 03 ноября 2019

Я создаю смс-шлюз с GSM-модемом, поддерживающим Hilink. я застрял, чтобы опубликовать XML. Первый шаг - получить сессию и токен. второй. с токеном передать в заголовок. ему будет предоставлен доступ для отправки сообщения. но как передать данные XML с помощью urllib3?

import urllib3
import xml.etree.ElementTree as XML

http = urllib3.PoolManager()

response_body = http.request('GET', 'http://192.168.8.1/api/webserver/SesTokInfo')

tree = XML.ElementTree(XML.fromstring(response_body.data))
root = tree.getroot()

token = root[1].text

data="<?xml version='1.0' encoding='UTF-8'?><request><Index>-1</Index><Phones><Phone>Number</Phone></Phones><Sca></Sca><Content>test</Content><Length>4</Length><Reserved>1</Reserved><Date>-1</Date></request>"

send_message = http.request('POST', 'http://192.168.8.1/api/sms/send-sms', data=data, headers={'__RequestVerificationToken': token, 'Content-Type': 'application/xml'})

print(send_message.status)

1 Ответ

1 голос
/ 03 ноября 2019

Вам нужно использовать body param insteam:

send_message = http.request('POST', 'http://192.168.8.1/api/sms/send-sms', body=data, headers={'__RequestVerificationToken': token, 'Content-Type': 'application/xml'})
...