Pergunta

Eu estou tentando fazer o meu primeiro cliente do serviço web para o API eBay usando o assistente do NetBeans 'novo Serviço Web Client' eo WSDL encontrados aqui . Meu entendimento é que isso é usando JAX-WS para gerar arquivos de classe, e os meus pedidos são todos SOAP.

Tudo parece funcionar bem, exceto quando tento executar um pedido, responde eBay com um 404 que parece ser a sua resposta padrão se a chamada não fazia sentido para ele.

Wireshark mostra o meu pedido como:

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

Mas a ferramenta de teste API eBay dizem que ele deve ser parecido:

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

Assim NetBeans envolveu meu pedido com o que eu só posso supor que é uma estrutura de SOAP padrão, e acrescenta 'Request' para o nome da chamada.

De onde vem este 'envelope' namespace e por que não eBay usá-lo? E como eu posso dizer NetBeans o que eu realmente quero fazer?

Eu também estou querendo saber o que o benefício é para o eBay SDK sobre este método (se ele trabalhou).

Foi útil?

Solução

Eu consegui descobrir isso e como de costume eu estou me chutando por não ler a documentação da API completamente.

O eBay API espera certos cabeçalhos HTTP a ser definido antes de dar qualquer coisa diferente de um 404.

Depois disso, a solicitação NetBeans SABÃO veio com foi interpretado corretamente pelo eBay e os resultados esperados retornado.

eBay API compras cabeçalho HTTP valoriza

guia do usuário

JAX-WS - definindo cabeçalhos HTTP

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top