我可以使用urllib提交SOAP请求吗?

时间:2009-01-09 18:30:09

标签: python soap

我有一个SOAP请求已知可以使用像SoapUI这样的工具,但我正在尝试使用urllib来使其工作。

这是我到目前为止所尝试过的,但它不起作用:

import urllib
f = "".join(open("ws_request_that_works_in_soapui", "r").readlines())
urllib.urlopen('http://url.com/to/Router?wsdl', f)

我无法找到关于如何将文档发布到SOAP服务器的规范。

urllib不是必需的。

2 个答案:

答案 0 :(得分:8)

好吧,我回答了我自己的问题

import httplib

f = "".join(open('ws_request', 'r'))

webservice = httplib.HTTP('localhost', 8083)
webservice.putrequest("POST", "Router?wsdl")
webservice.putheader("User-Agent", "Python post")
webservice.putheader("Content-length", "%d" % len(f))
webservice.putheader("SOAPAction", "\"\"")
webservice.endheaders()
webservice.send(f)

答案 1 :(得分:3)

简短回答:是的,你可以。

答案很长:

看看这个example它不使用urllib,但会让你知道如何准备SOAP请求。

至于urllib,我建议使用urllib2,是的,您可以使用它提交SOAP请求,按照相同的步骤准备请求,如上例所示。