최근에 Microsoft Dynamics GP 10 웹 서비스 용 Python 3.3에서 SOAP 클라이언트를 개발하는 임무를 맡았습니다. 하루 정도면 wsdl 슬라이싱과 다이 싱 후에 마침내 suds-jurko를 사용하여 클라이언트를 만들 수있었습니다. wsdl에 정의 된 객체 (유형)를 만들고 상호 작용할 수 있습니다. 그러나 서비스 요청을하려고 할 때 필연적으로 400 개의 잘못된 요청 오류가 발생합니다. 연구 반나절 후, 나는 이것이 Dynamics GP 10 웹 서비스 (basicHttpBinding을 잘 사용하는 레거시 wsdl)에 사용되는 wsHttpBinding과 관련이 있다고 의심합니다.Python 3 SOAP 클라이언트에서 동적 GP for suds-jurko 사용
우선, suds-jurko가 wsHttpBinding을 지원하는지 여부를 확인할 수 있습니까? 나는 그렇지 않다고 생각하지만 올바른 방향으로 향하고 있는지 여부를 알기 위해 어느 방향 으로든 다른 방향 으로든 확인을 원합니다.
둘째, suds-jurko가 wsHttpBinding을 지원하지 않는다고 가정 할 때 suds-jurko에 wsHttpBinding에 대한 지원을 추가하려면 어떻게해야합니까? basicHttpBinding과 wsHttpBinding 간의 기본적인 차이점을 이해하고 있지만 SOAP 클라이언트가이 두 바인딩 시나리오에서 다르게 수행해야하는 것에 대한 구체적인 리소스를 찾는 데 어려움을 겪고 있습니다 (온라인에서 찾은 리소스의 대다수는 나에게 쓸모가없는 wsHttpBinding을 사용하도록 .NET 웹 서비스를 구성하는 방법).
이것은 현재 클라이언트가 보내는 요청입니다. 이 요청은 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>
는 (I 중복 헤더를 발견하고는 400 잘못된 요청 오류 함께 할 수있는 뭔가가있을 경우 궁금. 나는 비눗물-jurko이 urllib.request 사용하여 사용하는 거의 동일한 코드를 시도했지만 여전히 함께 종료 400 : 잘못된 헤더가없는 잘못된 요청 오류)
모든 제안 및 조언을 주시면 감사하겠습니다. 나에게 더 많은 정보를 원한다면, 내가 할 수있는 것을 제공하는 것보다 더 행복 할 것이다. 미리 감사드립니다.