12

過去に API を使用したことはありますが、SOAP を使用しようとしたのはこれが初めてです。SOAP チュートリアルからこのコードの一部をコピー、貼り付け、および変更しましたが、10 の異なる例で 10 の異なる方法で実行されているのを見てきましたが、コードを説明する上で非常に明確なものはありません。次のコードは最適な方法ではないかもしれませんが、そのため、ヘルプと明確な方向性を探しています。どうもありがとうございました。

import string, os, sys, httplib

server_addr = "auctions.godaddy.com"
service_action = "GdAuctionsBiddingWSAPI/GetAuctionList"

body = """
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.example.com/services/wsdl/2.0">
<soapenv:Header/>
<soapenv:Body>
<ns:serviceListRequest>
<ns:userInfo>
</ns:userInfo>
</ns:serviceListRequest>
</soapenv:Body>
</soapenv:Envelope>"""

request = httplib.HTTPConnection(server_addr)
request.putrequest("POST", service_action)
request.putheader("Accept", "application/soap+xml, application/dime, multipart/related, text/*")
request.putheader("Content-Type", "text/xml; charset=utf-8")
request.putheader("Cache-Control", "no-cache")
request.putheader("Pragma", "no-cache")
request.putheader("SOAPAction", "https://auctions.godaddy.com/gdAuctionsWSAPI/gdAuctionsBiddingWS.asmx?op=GetAuctionList" + server_addr + service_action)
request.putheader("Content-Length", "length")
request.putheader("apiKey", "xxxxxx")
request.putheader("pageNumber", "1")
request.putheader("rowsPerPage", "1")
request.putheader("beginsWithKeyword", "word")
request.endheaders()
request.send(body)
response = request.getresponse().read()

print response
4

2 に答える 2

10

独自の SOAP クライアントを展開しようとしないでください。その名前にもかかわらず、SOAP は単純ではありません。

適切な SOAP ライブラリを見つけて、SOAP 通信に使用してください。

一般に、どの SOAP ライブラリが「最良」であるかという問題は、本質的に論争の的であり、その答えは、プロジェクトが流行したり廃れたりするにつれて、時間とともに変化する傾向があります。ユースケースに適したものを選択してください。独自に作成するよりも優れている可能性があります。

于 2013-03-15T15:57:27.593 に答える
1

私はあなたに泡を使うようにアドバイスすることができます。それはかなり良く、広く使われています。

更新: Basesudsプロジェクトが長期間アクティブではありません。現在非常に活発な現在のプロジェクトの新しいフォークがあります。

asudsプロジェクト

于 2013-03-15T16:02:26.440 に答える