質問

NetBeansの「新しいWebサービスクライアント」ウィザードと、こちら。私の理解では、これはJAX-WSを使用してクラスファイルを生成し、リクエストはすべてSOAPです。

リクエストを実行しようとするときを除いて、eBayは404で応答しますが、これは呼び出しが意味をなさない場合の標準応答と思われます。

Wiresharkは私のリクエストを次のように表示します:

<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<FindItemsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItemsRequest></S:Body></S:Envelope>

ただし、eBay APIテストツールでは、次のように表示されるはずです:

<?xml version="1.0" encoding="utf-8"?>
<FindItems xmlns="urn:ebay:apis:eBLBaseComponents">
<QueryKeywords>dvd players</QueryKeywords>
</FindItems>

つまり、NetBeansは私の要求を、標準的なSOAP構造であるとしか想定できないものでラップし、呼び出しの名前に「Request」を追加します。

この 'envelope'名前空間はどこから取得し、eBayはなぜそれを使用しないのですか?そして、NetBeansに私が本当にやりたいことをどのように伝えることができますか?

また、この方法よりもeBay SDKの利点は何か(それが機能した場合)。

役に立ちましたか?

解決

私はそれを理解することができましたが、いつものように、APIドキュメントを徹底的に読んでいないことを自慢しています。

eBay APIは、404以外を提供する前に特定のHTTPヘッダーが設定されることを想定しています。

その後、NetBeansが出したSOAP要求はeBayによって正しく解釈され、期待される結果が返されました。

eBayショッピングAPI HTTPヘッダー値

JAX-WSユーザーガイド-HTTPヘッダーの設定

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top