Skip to main content
 首页 » 编程设计

python之用 suds 为 SOAP 编写 python 客户端

2025年05月04日20rubylouvre

我想将 perl SOAP 客户端转换为 python SOAP 客户端。 perl 客户端初始化如下

$url = 'https://host:port/cgi-devel/Service.cgi'; 
$uri = 'https://host/Service'; 
 
my $soap = SOAP::Lite  
    -> uri($uri) 
    -> proxy($url); 

我试图用 suds 0.3.6 在 python 2.4.2 中复制它

from suds.client import Client 
 
url="https://host:port/cgi-devel/Service.cgi"  
client=Client(url) 

但是当运行这个 python 脚本时我得到了错误

suds.transport.TransportError: HTTP Error 411: Length Required 

是因为 https 还是可能是什么问题? 任何帮助将不胜感激!

请您参考如下方法:

urllib2 模块不会像 suds 那样手动构造 Request 对象时自动添加 Content-Length(POST 方法需要) header 。您必须修补泡沫,可能是 suds.transport.HttpTransport.open() 方法或 suds.transport.Request 类。