2009-01-09 60 views
3

我有一個已知可以使用像SoapUI這樣的工具工作的SOAP請求,但我試圖讓它使用urllib工作。我可以使用urllib提交SOAP請求嗎?

這是我到目前爲止已經試過,它沒有工作:

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

我一直沒能找到的文檔應該如何發佈到SOAP服務器的規格。

urllib不是必需的要求。

+0

它以什麼方式不起作用?你可以發佈堆棧跟蹤 – 2009-01-09 18:37:08

+0

是否使用urllib你的約束?你絕對必須使用它嗎? – 2009-01-09 19:13:20

回答

3

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

龍答:

看看這個example它不使用urllib的,但會給你的如何準備SOAP請求的想法。

就urllib而言,我建議使用urllib2,並且您可以使用它提交SOAP請求,請按照與前面示例中相同的步驟準備請求。

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) 
+0

這可能是SOAPAction和內容長度標題之前讓你絆倒。請注意,使用urllib2來添加標頭也非常簡單 - 恕我直言,使用比httplib更好。 – 2009-01-09 22:51:33

相關問題