0
正常に実行されている次のコードを記述しました。しかし、 soap body内で直接ハードコーディングする代わりに、username
をパラメータとして渡したいと思います。リクエストモジュールを使用してsoap body内の値をパラメータとして渡す方法
import requests
url = "url?WSDL"
headers = {"Content-Type": "text/xml;charset=UTF-8"}
body = """<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<soapenv:Header>
<tem:Authentication>
<!--Optional:-->
<tem:UserName>username</tem:UserName>
<!--Optional:-->
<tem:Password>password</tem:Password>
</tem:Authentication>
</soapenv:Header>
<soapenv:Body>
<tem:func1>
<!--Optional:-->
<tem:incident_number>INC000005215731</tem:incident_number>
<!--Optional:-->
<tem:wii>
<tem:Submitted>false</tem:Submitted>
<tem:Work_Info_Type>General_Information</tem:Work_Info_Type>
<!--Optional:-->
<tem:Summary>test</tem:Summary>
</tem:wii>
</tem:func1>
</soapenv:Body>
</soapenv:Envelope>"""
response = requests.post(url, data=body, headers=headers)
print response.content
はまた、どのように私はsuds
を使用して上記のコードを変換することができますか?あなたはまた、ジャンゴ/ Jinja2のようなテンプレートエンジンを使用してコンテキスト変数を使用することができ
from suds.client import Client
import logging
client = Client("url?WSDL")
user = client.factory.create('Authentication')
user['UserName'] = 'username'
user['Password'] = 'password'
client.set_options(soapheaders=user)
に切り替えることで、私はすでに、 'suds'を試してみましたが、私はデバッグの問題を持っていたし、それは私が戻ってrequests''へ移動し、なぜ私が追加したあります元の質問で 'suds'を使っているコードの一部です。あなたはさらに移動する方法を提案できますか? – me24hour
あなたはどのような問題を抱えていますか?あなたの泡の問題の詳細を参考にしてください。パブリックなWSDLですか?あなたの設定は、私がsoapheadersが私のためのリストだと思う以外は何をしているかと似ているようです – Plahcinski