Python 无法将数据发布到SOAP服务:HTTP状态404请求的资源()不可用

Python 无法将数据发布到SOAP服务:HTTP状态404请求的资源()不可用,python,web-services,soap,Python,Web Services,Soap,我正试图通过HTTPS将数据发送到SOAP服务,但被卡住了…响应总是“HTTP状态404请求的资源()不可用” wsdl文件: 请告诉我有什么问题 我的代码(python): xml=”“” 777777777 书信电报 http://some_url 签名 cid:5028411313118 名字 cid:1348553326218 cid:1279381531143 """ 协议=ssl.protocol\u TLSv1\u 2 ssl\u context=ssl.SSLContext(协议

我正试图通过HTTPS将数据发送到SOAP服务,但被卡住了…响应总是“HTTP状态404请求的资源()不可用”

wsdl文件:

请告诉我有什么问题

我的代码(python):

xml=”“”
777777777
书信电报
http://some_url
签名
cid:5028411313118
名字
cid:1348553326218
cid:1279381531143
"""
协议=ssl.protocol\u TLSv1\u 2
ssl\u context=ssl.SSLContext(协议)
conn=httplib.HTTPSConnection('wstest.gosign.lt',context=ssl\u context)
连接
连接请求(“POST”https://wstest.gosign.lt/unisign/service/OneSignService/InitSigning;HTTP/1.1)
conn.putheader(“SOAPAction”https://wstest.gosign.lt/unisign/service/OneSignService/InitSigning")
conn.putheader(“内容类型”,“文本/xml;字符集=utf-8”)
conn.putheader(“内容长度”,len(xml))
连接端头()
conn.send(xml)
response=conn.getresponse()
打印(response.read())

xml结构通常应该是良好的,因为它是由soapui使用wsdl文件生成的,不确定内容是否良好。我认为不应该将主机名放入
putrequest()
调用中。主机名已在HTTPSConnection中指定。谢谢,但是conn.putrequest(“POST”,“/unisign/service/OneSignService/InitSigning;HTTP/1.1”)没有任何更改。主要问题是:此错误是由xml内容或错误的请求(错误的头)引起的?您有关于如何使用soap服务的文档吗?他们提供了一些示例调用吗?xml结构通常应该是好的,因为它是由soapui使用wsdl文件生成的,不确定内容是否正确。我认为不应该将主机名放在
putrequest()
调用中。主机名已在HTTPSConnection中指定。谢谢,但是conn.putrequest(“POST”,“/unisign/service/OneSignService/InitSigning;HTTP/1.1”)没有任何更改。主要问题是:此错误是由xml内容或错误的请求(错误的头)引起的?您有关于如何使用soap服务的文档吗?他们提供了一些样本电话吗?
 xml="""<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ones="https://wstest.gosign.lt/unisign/service/onesignservice.wsdl">
        <soapenv:Header/>
        <soapenv:Body>
            <ones:InitOneSignRequest xmlns="https://wstest.gosign.lt/unisign/service/onesignservice.wsdl">
         <ones:clientInfo>
            <!--clientId>TESTID</clientId-->
            <!--Optional:-->
            <signerPersonalCode>777777777</signerPersonalCode>
            <!--Optional:-->
            <locale>lt</locale>
            <responseUrl>http://some_url</responseUrl>
            <!--Optional:-->
            <remoteAddress></remoteAddress>
            <!--0 to 2 repetitions:-->
            <acceptableInfrastructure></acceptableInfrastructure>
         </ones:clientInfo>
         <!--Optional:-->
         <ones:signatureMetadata>
            <!--Optional:-->
            <reason></reason>
            <!--Optional:-->
            <location></location>
            <!--Optional:-->
            <contact></contact>
         </ones:signatureMetadata>
         <!--Optional:-->
         <ones:signatureDisplayProperties>
            <!--Optional:-->
            <position></position>
            <!--Optional:-->
            <displayValidity></displayValidity>
            <!--Optional:-->
            <signatureImageUrl></signatureImageUrl>
            <!--Optional:-->
            <backgroundImageUrl></backgroundImageUrl>
         </ones:signatureDisplayProperties>
         <!--Optional:-->
         <ones:mobileSigningText></ones:mobileSigningText>
         <ones:signingType>Signature</ones:signingType><ones:file>
            <fileDigest>cid:502841313118</fileDigest>
            <!--Optional:-->
            <fileName>somename</fileName>
            <content>cid:1348553326218</content>
         </ones:file>
         <ones:signature>cid:1279381531143</ones:signature>
      </ones:InitOneSignRequest>
   </soapenv:Body>
</soapenv:Envelope>
        """


protocol=ssl.PROTOCOL_TLSv1_2
ssl_context=ssl.SSLContext(protocol)
conn = httplib.HTTPSConnection('wstest.gosign.lt', context=ssl_context)
conn.connect()
conn.putrequest("POST", "https://wstest.gosign.lt/unisign/service/OneSignService/InitSigning; HTTP/1.1")
conn.putheader("SOAPAction", "https://wstest.gosign.lt/unisign/service/OneSignService/InitSigning")
conn.putheader("Content-Type", "text/xml; charset=utf-8" )
conn.putheader("Content-Length", len(xml))
conn.endheaders()
conn.send(xml)
response = conn.getresponse()
print(response.read())