Как работать с вызовами SOAP UI с помощью Python?

#python #html #python-3.x #xml #python-requests

#python #HTML #python-3.x #xml #python-запросы

Вопрос:

У меня есть следующий необработанный запрос из SOAP UI. Как я могу преобразовать его в запрос Python?

 POST https://data.egov.kz/proxy2/culs_payments?token=50a3f6ca0f824f9e97938295fbc7768f HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 273
Host: data.egov.kz
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.5 (Java/12.0.1)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sign:Request xmlns:sign="http://xmlns.kztc-cits/sign" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sign:IIN_BIN>090740002542</sign:IIN_BIN>
</sign:Request>
  

Я пробовал:

 import requests

url = "https://data.egov.kz/proxy2/culs_payments?token=50a3f6ca0f824f9e97938295fbc7768f"
headers = {'content-type': 'application/json'}
body = """<sign:Request xmlns:sign="http://xmlns.kztc-cits/sign" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <sign:IIN_BIN>010540001007</sign:IIN_BIN>
</sign:Request>"""
print(body)
response = requests.post(url,data=body, headers = headers, verify = False)
print (response.content)
  

и я получаю ошибку Not found

Комментарии:

1. Здравствуйте. Запросы data for a post принимают a dict , а не a string . Можете ли вы сказать, что именно публикуется?

2. @Mooncrater Как я могу это увидеть?

3. @Mooncrater первый код является сырым из SOAP UI.

4. Однако я не использовал SOAP UI. Обычно, когда вы post что-то делаете, отправляется объект JSON. Строка может быть отправлена, но все равно у нее должно быть имя. Даже строка headers = {'content-type': 'application/json'} говорит то же самое. Можете ли вы попытаться углубиться в то, что именно происходит под капотом?

5. @Mooncrater Как я могу создать body dict из body str?