मुझे आश्चर्य है कि क्या मैं SOAP एपीआई को लागू करने के लिए बस HTTP पोस्ट अनुरोधों का उपयोग कर सकता हूं।क्या मैं SOAP के लिए HTTP पोस्ट अनुरोधों का उपयोग कर सकता हूं? - एसओएपी और डीजेगो
यदि ऐसा है तो मैं अनुरोधों को प्रारूपित और कैसे करना चाहिए?
मुझे आश्चर्य है कि क्या मैं SOAP एपीआई को लागू करने के लिए बस HTTP पोस्ट अनुरोधों का उपयोग कर सकता हूं।क्या मैं SOAP के लिए HTTP पोस्ट अनुरोधों का उपयोग कर सकता हूं? - एसओएपी और डीजेगो
यदि ऐसा है तो मैं अनुरोधों को प्रारूपित और कैसे करना चाहिए?
हाँ, मैंने कुछ मामलों में ऐसा किया है जहां SOAPpy किसी दिए गए स्कीमा के साथ काम नहीं करता है। इससे आप कार्य शुरू कर पाएंगे।
import httplib
from xml.dom import minidom
http.request("POST", "/path/to/my/webservice", body=xml, headers = {
"Host": "myservername",
"Content-Type": "text/xml; charset=UTF-8",
"Content-Length": len(xml)
})
print minidom.parseString(http.getresponse().read())
सामग्री स्ट्रिंग के लिए, मैं SoapUI का उपयोग मैन्युअल अनुरोध करने के लिए होगा, और फिर एक्सएमएल की नकल।
हाँ, देख http://www.w3schools.com/SOAP/soap_httpbinding.asp
एक सोप विधि एक HTTP अनुरोध/प्रतिक्रिया है कि सोप एन्कोडिंग नियमों का अनुपालन है।
HTTP + एक्सएमएल = सोप
एक सोप अनुरोध एक HTTP POST या एक HTTP GET अनुरोध हो सकता है।
आपको कभी-कभी सेवा कारणों की गुणवत्ता के लिए उपयोग किए जाने वाले अन्य परिवहन तंत्र मिलेंगे, उदाहरण के लिए मैसेजिंग फ्रेमवर्क का उपयोग करना।
मुझे simple-salesforce पैकेज में इसका एक बड़ा उदाहरण मिला। कोड login.py
में है और
soap_url = 'https://{domain}.salesforce.com/services/Soap/u/{sf_version}'
domain = 'test' if sandbox else 'login'
soap_url = soap_url.format(domain=domain, sf_version=sf_version)
username = escape(username)
password = escape(password)
# Check if token authentication is used
if 'security_token' in kwargs:
security_token = kwargs['security_token']
# Security Token Soap request body
login_soap_request_body = """<?xml version="1.0" encoding="utf-8" ?>
<env:Envelope
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Body>
<n1:login xmlns:n1="urn:partner.soap.sforce.com">
<n1:username>{username}</n1:username>
<n1:password>{password}{token}</n1:password>
</n1:login>
</env:Body>
</env:Envelope>""".format(username=username, password=password, token=security_token)
# Check if IP Filtering is used in cojuction with organizationId
elif 'organizationId' in kwargs:
organizationId = kwargs['organizationId']
# IP Filtering Login Soap request body
login_soap_request_body = """<?xml version="1.0" encoding="utf-8" ?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:partner.soap.sforce.com">
<soapenv:Header>
<urn:CallOptions>
<urn:client>RestForce</urn:client>
<urn:defaultNamespace>sf</urn:defaultNamespace>
</urn:CallOptions>
<urn:LoginScopeHeader>
<urn:organizationId>{organizationId}</urn:organizationId>
</urn:LoginScopeHeader>
</soapenv:Header>
<soapenv:Body>
<urn:login>
<urn:username>{username}</urn:username>
<urn:password>{password}</urn:password>
</urn:login>
</soapenv:Body>
</soapenv:Envelope>""".format(
username=username, password=password, organizationId=organizationId)
else:
except_code = 'INVALID AUTH'
except_msg = 'You must submit either a security token or organizationId for authentication'
raise SalesforceAuthenticationFailed(except_code, except_msg)
login_soap_request_headers = {
'content-type': 'text/xml',
'charset': 'UTF-8',
'SOAPAction': 'login'
}
response = requests.post(soap_url,
login_soap_request_body,
headers=login_soap_request_headers,
proxies=kwargs.get('proxies', None))
टूटा हुआ लिंक - केवल एक सिर ऊपर चिपकाया गया है। – alexplanation