0

Python のsudsを使用して eBay の Web サービスでいくつかのリクエストを作成しようとしていますが、常に次のエラーが発生します。

「SOA操作名ヘッダーがありません」

私が使用するコードは次のとおりです。

client = Client(EBAY_WSDL)
ns1 = ('ns1', 'http://www.ebay.com/marketplace/search/v1/services')
operation_name = Element('X-EBAY-SOA-OPERATION-NAME',ns=ns1).setText('findItemsByKeywords')
appid = Element('X-EBAY-SOA-SECURITY-APPNAME',ns=ns1).setText('MY APP ID')
headers = [appid,operation_name]
client.set_options(soapheaders=headers)

ヘッダーで何が間違っているのかわかりません...誰かが私にそれを指摘できますか?

ありがとう!

- 編集 -

さて、同じ問題を抱えている人のために。この問題を解決しました。

問題は、http ヘッダーである必要があるときに SOAP ヘッダーを設定していることです。したがって、答えは、次のように Client コンストラクターにヘッダーを配置することです。

operation_name = {'X-EBAY-SOA-OPERATION-NAME':'findItemsByKeywords', 'SomeOther':'blabla'}
client = Client(EBAY_WSDL,headers=operation_name)

それでおしまい!

4

1 に答える 1

0

元のポスターから回答をコピーする:brunodea


さて、同じ問題を抱えている人にとっては。この問題は解決しました。

問題は、httpヘッダーであるはずのsoapヘッダーを設定していることです。したがって、答えは次のようにClientコンストラクターにヘッダーを配置します。

operation_name = {'X-EBAY-SOA-OPERATION-NAME':'findItemsByKeywords', 'SomeOther':'blabla'}
client = Client(EBAY_WSDL,headers=operation_name)

それでおしまい!

于 2012-10-15T16:48:07.343 に答える