Domanda

Sto cercando di creare il mio primo client di servizi Web per l'API di eBay utilizzando la procedura guidata "Nuovo client di servizi Web" di NetBeans e il WSDL ha trovato qui . La mia comprensione è che questo utilizza JAX-WS per generare file di classe e le mie richieste sono tutte SOAP.

Tutto sembra funzionare bene, tranne quando provo ad eseguire una richiesta, eBay risponde con un 404 che sembra essere la sua risposta standard se la chiamata non ha senso.

Wireshark mostra la mia richiesta come:

<?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>

Ma lo strumento di test dell'API di eBay dice che dovrebbe apparire come:

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

Quindi NetBeans ha racchiuso la mia richiesta con quella che posso solo supporre che sia una struttura SOAP standard e aggiunge 'Richiesta' al nome della chiamata.

Da dove prende questo spazio dei nomi 'busta' e perché eBay non lo usa? E come posso dire a NetBeans cosa voglio davvero fare?

Mi chiedo anche quale sia il vantaggio per l'SDK di eBay su questo metodo (se ha funzionato).

È stato utile?

Soluzione

Sono riuscito a capirlo e come al solito mi sto prendendo a calci per non aver letto a fondo i documenti API.

L'API di eBay prevede che alcune intestazioni HTTP vengano impostate prima di fornire qualcosa di diverso da un 404.

Successivamente, la richiesta SOAP fornita da NetBeans è stata interpretata correttamente da eBay e i risultati previsti sono stati restituiti.

Valori HTTP dell'API dello shopping eBay

Guida per l'utente JAX-WS - impostazione delle intestazioni HTTP

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top