我第一次尝试使用pysimplesoap(以及我第一次使用soap)代码
from pysimplesoap.client import SoapClient
j_location = 'http://api.jasperwireless.com/ws/schema'
j_xsd = 'http://api.jasperwireless.com/ws/schema/JasperAPI.xsd'
j_echo_wsdl = 'http://api.jasperwireless.com/ws/schema/Echo.wsdl'
j_billing_wsdl = 'http://api.jasperwireless.com/ws/schema/Billing.wsdl'
print 'Creating client'
myclient = SoapClient(wsdl=j_echo_wsdl)
print 'Target Namespace', myclient.namespace
错误 RuntimeError:没有给出url的方案:JasperAPI.xsd
我不确定我应该如何解决此错误。
答案 0 :(得分:0)
我想这个问题是因为" JasperAPI.xsd"被引用为WSDL中的本地文件:
<xs:import namespace="http://api.jasperwireless.com/ws/schema" schemaLocation="JasperAPI.xsd"/>
我不完全确定schemaLocation
应该如何运作。至少有一些软件会自动转换
schemaLocation="JasperAPI.xsd"
到
schemaLocation="http://api.jasperwireless.com/ws/schema/JasperAPI.xsd"
但至少libxml2 - 大多数(所有?)Python SOAP实现使用 - 不会这样做。
作为一次性快速修复,您可以尝试将JasperAPI.xsd放在本地工作目录中。