使用suds jurko的用于Dynamics GP的Python 3 SOAP客户端

使用suds jurko的用于Dynamics GP的Python 3 SOAP客户端,python,web-services,soap,python-3.x,suds,Python,Web Services,Soap,Python 3.x,Suds,我最近承担了一项残酷而血腥的任务,用python 3.3为Microsoft Dynamics GP 10 web服务开发SOAP客户端。经过一天左右的wsdl切片和切割,我终于能够使用SudJurko创建一个客户机。我可以创建wsdl中定义的对象类型并与之交互。然而,当我尝试进行任何服务调用时,不可避免地会收到400个错误请求错误。经过半天的研究,我怀疑这与Dynamics GP 10 web服务使用的wsHttpBinding有关。传统的wsdl使用basicHttpBinding工作得很好

我最近承担了一项残酷而血腥的任务,用python 3.3为Microsoft Dynamics GP 10 web服务开发SOAP客户端。经过一天左右的wsdl切片和切割,我终于能够使用SudJurko创建一个客户机。我可以创建wsdl中定义的对象类型并与之交互。然而,当我尝试进行任何服务调用时,不可避免地会收到400个错误请求错误。经过半天的研究,我怀疑这与Dynamics GP 10 web服务使用的wsHttpBinding有关。传统的wsdl使用basicHttpBinding工作得很好

首先,有人能帮我确认一下suds jurko是否支持wsHttpBinding吗?我怀疑它没有,但我想以这样或那样的方式得到确认,以便我知道我是否朝着正确的方向前进

第二,假设suds-jurko不支持wsHttpBinding,我需要做什么来向suds-jurko添加对wsHttpBinding的支持?我理解basicHttpBinding和wsHttpBinding之间的基本区别,但我很难找到关于SOAP客户端在这两种绑定场景中需要做哪些不同的具体资源我在网上找到的绝大多数资源都是关于如何配置.NET Web服务来使用wsHttpBinding的,这对我没用

这是我当前客户端发送的请求。此请求与支持wsHttpBinding的客户端生成的请求有何不同

HEADERS: {'Content-Type': 'application/soap+xml; charset=utf-8', 
          'Content-type':    'application/soap+xml; charset=utf-8',
          'SOAPAction': b'"http://schemas.microsoft.com/dynamics/gp/2010/01/ICompany/GetCompanyList"',
          'Soapaction': b'"http://schemas.microsoft.com/dynamics/gp/2010/01/ICompany/GetCompanyList"'}

MESSAGE: <?xml version="1.0" encoding="UTF-8"?>
         <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
           xmlns:ns0="http://schemas.microsoft.com/dynamics/gp/2010/01"
           xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
           xmlns:ns2="http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.GP"
           xmlns:ns3="http://schemas.datacontract.org/2004/07/Microsoft.Dynamics.Common"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
             <SOAP-ENV:Header/>
             <ns1:Body>
                 <ns0:GetCompanyList>
                     <ns0:criteria>
                         <ns3:columns/>
                         <ns3:convertToUpperCaseRestriction/>
                         <ns3:restrictions/>
                         <ns2:Id>
                             <ns3:From>-32000</ns3:From>
                             <ns3:To>32000</ns3:To>
                         </ns2:Id>
                     </ns0:criteria>
                     <ns0:context>
                         <ns3:CultureName>en-US</ns3:CultureName>
                         <ns3:CurrencyType>Transactional</ns3:CurrencyType>
                         <ns3:OrganizationKey xsi:type="ns3:CompanyKey">
                             <ns3:Id>-1</ns3:Id>
                         </ns3:OrganizationKey>
                     </ns0:context>
                 </ns0:GetCompanyList>
             </ns1:Body>
         </SOAP-ENV:Envelope>
我注意到重复的标题,想知道这是否与400错误请求有关。我尝试了几乎与suds jurko使用urllib.request时使用的代码相同的代码,但最终还是出现了400:Bad请求错误,并且没有重复的头


如有任何建议和/或建议,将不胜感激。如果你想从我这里得到更多的信息,我将非常乐意提供我所能提供的。提前感谢。

经过大量的研究、实验和测试,我能够找到我大部分问题的答案。希望有人能从我学到的东西中受益。我们最终使用了遗留端点

在回答我的第一个问题时,suds jurko不支持wsHTTPBinding。我不确定在.NET世界之外是否有其他东西


为suds jurko添加wsHTTPBinding支持将是一项重大任务。您应该能够找到有关wsHTTPBinding基本规范和规范的信息。

经过大量的研究、实验和测试,我能够找到我大部分问题的答案。希望有人能从我学到的东西中受益。我们最终使用了遗留端点

在回答我的第一个问题时,suds jurko不支持wsHTTPBinding。我不确定在.NET世界之外是否有其他东西

为suds jurko添加wsHTTPBinding支持将是一项重大任务。您应该能够找到有关基本wsHTTPBinding规范和规范的信息