Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python响应与soapUI不匹配_Python_Soap_Wsdl_Pysimplesoap - Fatal编程技术网

python响应与soapUI不匹配

python响应与soapUI不匹配,python,soap,wsdl,pysimplesoap,Python,Soap,Wsdl,Pysimplesoap,当我使用soapUI访问web服务时,我得到了格式正确的文本。 但是当我使用python代码时,我会得到一个字典,在一个allBusType键中包含所有行 from pysimplesoap.client import SoapClient url = 'http://180.92.171.93:8080/UPSRTCServices/UPSRTCService?wsdl' namespace = 'http://service.upsrtc.trimax.com/' client = Soap

当我使用soapUI访问web服务时,我得到了格式正确的文本。 但是当我使用python代码时,我会得到一个字典,在一个allBusType键中包含所有行

from pysimplesoap.client import SoapClient
url = 'http://180.92.171.93:8080/UPSRTCServices/UPSRTCService?wsdl'
namespace = 'http://service.upsrtc.trimax.com/'
client = SoapClient(wsdl=url, namespace=namespace, trace=True)
print client.GetBusTypes()
上述代码返回以下内容:

{'return': {'allBusType': [{'busName': u'AC SLEEPER'}, {'busType': u'ACS'}, {'ischildconcession': u'N'}, {'isseatlayout': u'N'}, {'isseatnumber': u'N'}, {'busName': u'AC-JANRATH'}, {'busType': u'JNR'}, {'ischildconcession': u'N'}, {'isseatlayout': u'Y'}, {'isseatnumber': u'Y'},....
根据下面的屏幕,soapUI将所有公共汽车站作为单独的标记返回。(并非所有停止点都在一个标签中,如上所述)


交流轨枕
ACS
N
N
N
AC-JANRATH
JNR
N
Y
Y
我想知道这是python问题还是服务器问题

对于每个条目,soapUI响应中都有一个名为“allBusType”的开始和结束标记,而python响应中缺少该标记。 Python输出为所有条目返回一行。

返回一行,如SoapClient文档的第一行所述:

一个简单、最小且功能强大的HTTP SOAP Web服务使用者,使用httplib2进行连接,使用SimpleXmlElement进行XML请求/响应操作

因此,要将其视为xml,需要在返回的

as_xml(pretty=False):返回文档的xml表示形式

以下方面应起作用:


您使用的是哪个
pysimplesoap
版本?您是如何安装的?谢谢。1.16版!pip安装pysimplesapi不要坚持使用pysimplesap。任何返回正确输出(如soapUI响应)的模块/脚本都可以。
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns3:GetBusTypesResponse xmlns:ns2="com.trimax.upsrtc.xml.jaxb.model" xmlns:ns3="http://service.upsrtc.trimax.com/">
         <return>
            <allBusType>
               <busName>AC SLEEPER</busName>
               <busType>ACS</busType>
               <ischildconcession>N</ischildconcession>
               <isseatlayout>N</isseatlayout>
               <isseatnumber>N</isseatnumber>
            </allBusType>
            <allBusType>
               <busName>AC-JANRATH</busName>
               <busType>JNR</busType>
               <ischildconcession>N</ischildconcession>
               <isseatlayout>Y</isseatlayout>
               <isseatnumber>Y</isseatnumber>
            </allBusType>
from pysimplesoap.client import SoapClient
url = 'http://180.92.171.93:8080/UPSRTCServices/UPSRTCService?wsdl'
namespace = 'http://service.upsrtc.trimax.com/'
client = SoapClient(wsdl=url, namespace=namespace, trace=True)
results = client.GetBusTypes()
print results.as_xml()