0

このタスクは生成セッションIDに関するものであり、これは私にとってまったく新しいものです。

ここではGAEと宛先URLを使用しています:http://203.215.51.43/GVSignOn/ExecutePortType ?WSDL 、この実装では、これらのドキュメントelementsoapsoapWebservice-GAEElement-Soapを参照しています

&私もいくつかの手順を書きました、

#!/usr/bin/python

from elementsoap.ElementSOAP import *
from elementtree.ElementTree import Element, SubElement, tostring, QName

NS_SOAP_ENV = "{http://schemas.xmlsoap.org/soap/envelope/}"
NS_XSI = "{http://www.w3.org/2001/XMLSchema-instance}"
NS_XSD = "{http://www.w3.org/2001/XMLSchema}"

class SoapService:
    def __init__(self, url=None):
        self.__client = HTTPClient(url or self.url)
    def call(self, action, request):
       # build SOAP envelope
       envelope = Element(NS_SOAP_ENV + "Envelope")
       body = SubElement(envelope, NS_SOAP_ENV + "Body")
       body.append(request)
       # call the server
       response = self.__client.do_request(
          tostring(envelope),
          extra_headers=[("SOAPAction", action)]
       )

       return response.getroot().find(body.tag)[0]

def SoapRequest(method):
    # create a SOAP request element
    request = Element(method)
    request.set(
       NS_SOAP_ENV + "operation",
       "http://schemas.xmlsoap.org/soap/encoding/"
    )

    return request


def SoapElement(parent, name, type=None, text=None):
   # add a typed SOAP element to a request structure
   elem = SubElement(parent, name)
   if type:
      if not isinstance(type, QName):
          type = QName("http://www.w3.org/2001/XMLSchema", type)
      elem.set(NS_XSI + "type", type)
   elem.text = text
   return elem



class GVService(SoapService):
  url = 203.215.51.43:80/GVSignOn/ExecutePortType
  def SignOnReq(self):
    action = 'urn:stc:egate:jce:prjGV_prjGV_BC_Redeem_OTDs:jcdGV_SignOnWSDL:signOn'
    request = SoapRequest('{' + self.url  + '}SignOnReq')
    SoapElement(request, "TerminalId", "string", 'T1081')
    SoapElement(request, "StoreCode", "string", '1006')
    SoapElement(request, "TimeStamp", "string", '2012-08-03 00:00:00')
    response = self.call(action, request)
    return response.findtext("Msg")

今これを呼んでいます、

応答=GVService()。SignOnReq()

しかし、ここではエラーが発生します。

ファイル"C:\ Python25 \ Lib \ site-packages \ elementsoap \ HTTPClient.py"、155行目、d o_requestでHTTPError(errcode、errmsg、headers、h.getfile())elementsoap.HTTPClient.HTTPError:(500、 '内部サーバーエラー'、 、 )

手順の正確な問題を特定できませんでした。これを手伝ってください。

注意してください

要するに、私の入力パラメーターは、TerminalId、StoreCode、TimeStamp であり、予期する応答パラメーターは、Code、Msg、およびSessionId&です。

私の間違いは手順書にのみあると信じていたので、このhttp://203.215.51.43/GVSignOn/ExecutePortType?WSDLリンクも参照して、入力データと予想される出力データの間違いを特定してください。

&ここでもGAE sdk 1.6.1v、Python2.5を使用しており、elementsoap&elementtreeモジュールもインポートしています

他の情報が必要な場合、またはクエリの情報を変更する必要がある場合は、お知らせください。

4

1 に答える 1