2017-12-28 30 views
0

私はweb2py pysimplesoapを使用しており、サーバーからデータを取得しようとしています。メソッドを呼び出すと、応答が返ってくるが、XMLにはデータがない。 提案がありますか?ここでpython web2py pysimplesoapクライアントエンベロープデータ

は私のコード

url = "https://www.xxx.ss/demo/aaa/aaa" 
# 


xml = ("""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cet="http://xxxx.yy"> 
     <soapenv:Header/> 
     <soapenv:Body> 
      <cet:GetEmployedElement> 
      <!--Zero or more repetitions:--> 
      <cet:GetEmployed> 
       <cet:OrganizationCode></cet:OrganizationCode> 
       <cet:LastName></cet:LastName> 
       <cet:FirstName></cet:FirstName> 
       <cet:AktCard></cet:AktCard> 
       <cet:JobAgreementType></cet:JobAgreementType> 
       <cet:Mferac></cet:Mferac> 
      </cet:GetEmployed> 
      </cet:GetEmployedElement> 
     </soapenv:Body> 
    </soapenv:Envelope> 
    """) 

from gluon.contrib.pysimplesoap.client import SoapClient, SoapFault 
client = SoapClient(wsdl="https://www.xxxx.yy/demo/aaa/aaa?wsdl", location="https://www.xxxx.yy", cacert=None, trace=True) 
# call SOAP method 
#print server.methods['getEmployed'] 
#print client 
print client.getEmployed() 

で、私の結果は

POST http://192.168.66.53:8380/demo/KadrisData/KadrisData 
SOAPAction: "http://cetrtapot.si/getEmployed" 
Content-length: 269 
Content-type: text/xml; charset="UTF-8" 

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<soap:Header/> 
<soap:Body> 

</soap:Body> 
</soap:Envelope> 

そしてしばらくした後、私は最初に私が設定するために必要なシンプルな石鹸で

urllib2.URLError: <urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond> 

答えて

0

でタイムアウトを取得しています内部URLを呼び出してからxmlを取得するURL

私はいくつかのxml解析やその他の問題があったので、私はzeepライブラリを使用することに決めましたが、修正が必要でした。私はこれが誰か

を役に立てば幸い

client = Client(url ,strict=False) 
#In case some parameters expected from envelope were missing I got an error, so I needed to set strict = False 
x = client.service.getEmployed 
x._proxy._binding_options['address'] = 'https://www.xxxx.yyyy/demo/gggg/gggta' 
#a new binding option neede to be set otherwise some internal 192.168.xx.yy was called and that is why I always got an timeout error 

(コード内のコメントを参照してください)ので、私はいくつかのものを修正するために必要なバグがあるかどうかわからないが、データを取得するための呼び出しが間違って行われていました

関連する問題