Bir SOAP isteği göndermek için Python'un requests
kitaplığını kullanmak mümkün mü?Python İstekleri Kullanarak SOAP isteği gönderme
cevap
Bu gerçekten mümkündür.
import requests
url="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"
#headers = {'content-type': 'application/soap+xml'}
headers = {'content-type': 'text/xml'}
body = """<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns0="http://ws.cdyne.com/WeatherWS/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<ns1:Body><ns0:GetWeatherInformation/></ns1:Body>
</SOAP-ENV:Envelope>"""
response = requests.post(url,data=body,headers=headers)
print response.content
bazı notlar:
- başlıkları önemlidir
Burada düz istekleri lib kullanarak Hava SABUN Hizmetlerini arayarak bir örnektir. Çoğu SOAP isteği doğru başlık olmadan çalışmayacaktır.
application/soap+xml
muhtemelen kullanmak daha doğru başlıktır (ama Hava Servisi Bu xml dize olarak yanıt dönecektirtext/xml
- tercih - Ben isteği dahil ettik ardından da söz konusu xml ayrıştırmak gerekir
- Kolaylık olması açısından. . düz metin Ama en iyi uygulama olarak bir şablon olarak bu depolamak olacaktır, o zaman (örneğin) jinja2 kullanarak yükleyebilirsiniz - ve aynı zamanda değişkenler geçmek Örneğin
:
.Bazı insanlar köpük kütüphanesinden bahsetmişlerdir. Suds, SOAP ile etkileşimde bulunmak için muhtemelen doğru yoludur, ancak sıklıkla kötü bir şekilde oluşturulmuş WDSL'leriniz olduğunda (ki bu TBH, bir kurumla uğraşırken değil, daha büyük olasılıkla) panik olduğunu farkediyorum. hala SOAP kullanır;)).
Öyle gibi köpüğüyle yukarıdaki yapabilirsiniz:
from suds.client import Client
url="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"
client = Client(url)
print client ## shows the details of this service
result = client.service.GetWeatherInformation()
print result
Not: köpük kullanırken, neredeyse her zaman use the doctor ihtiyacı kadar sona erecek!
Son olarak, SOAP hata ayıklaması için küçük bir bonus; TCPdump senin arkadaşın. Mac'te, şöyle tcpdump çalıştırabilirsiniz:
sudo tcpdump -As 0
Bu aslında telin üzerinden gitmek istekleri teftiş için yararlı olabilir.
yukarıdaki iki kod snippet'ine uz olarak da mevcuttur:
Servis kullanıcı adı ve şifre isterse ne olur? onları nereye not etmek – Oskars
Artık kod snippet'i "suds.transport.TransportError: HTTP Error 500: Dahili Sunucu Hatası" verir. Sunucu kapalı gibi görünüyor. – Louis
@ toast38coza http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL -> '/ WeatherWS' Uygulamasında Sunucu Hatası. Lütfen örneği güncelleyin. –
- 1. Python İstekleri Kullanarak JSON Gönderme
- 2. Python SUDS SOAP isteği https hizmetine 401
- 3. Python İstekleri modülünü kullanarak HTTP posta isteği nasıl taklit edilir?
- 4. SOAP, http web hizmeti istekleri ve URL
- 5. Sunucu tarafında uygulama istekleri gönderme
- 6. CURL ile PHP'de SOAP isteği
- 7. Tarayıcıdan SOAP isteği nasıl gönderilir?
- 8. Laravel & PHP kullanarak bir SOAP Web Hizmetine veri gönderme
- 9. Python istekleri
- 10. Python istekleri
- 11. Spreyde bir gönderi isteği gönderme
- 12. node.js içinde http isteği gönderme
- 13. WebService'den SOAP isteği aracılığıyla yanıt alınamadı VBA
- 14. Python ve SOAP
- 15. SOAP, Python, köpükler
- 16. Parametreler iOS uygulamasından SOAP ASMX Hizmetine Gönderme
- 17. Python istekleri modülü
- 18. Java'da SOAP isteği üstbilgisi nasıl gönderilir?
- 19. Oluşturulan sınıfların SOAP-İstemci İsteği parametrelerini değiştiremezsiniz
- 20. Python kullanarak MIDI mesajlarını gönderme (Ubuntu'da)
- 21. SOAP isteğinde TypeError (pysimplesoap kullanarak)
- 22. Webservices kullanarak Meteor js paketi zardak/soap kullanarak SOAP
- 23. SOAP groovy kullanarak istek
- 24. python - istekleri, aynı adı taşıyan veri parametreleri kullanarak
- 25. C# HttpWebRequest veya WebClient ile HTTP istekleri gönderme?
- 26. Python İstekleri POST çalışmıyor
- 27. Python istekleri. 403 Yasak
- 28. PHP ile WSDL Sabun İsteği Olan bir Sabun Başlığı Gönderme
- 29. Meteor içinde veri gönderme HTTP GET isteği
- 30. python istekleri üstbilgileri bir değişken olarak mı saklıyor?
Bu nasıl çözüm bu mu? http: //stackoverflow.com/q/15569330/2620328 – sihrc
köpük kullanmaması; –
@DeepankarBajpeyi neden olmasın? Bu iş için uygun tek araçtır. –