Клиент веб-служб NetBeans создает недопустимый запрос для API eBay

Я пытаюсь создать свой первый клиент веб-службы для API eBay с помощью мастера нового клиента веб-службы NetBeans, и WSDL обнаружил здесь. Насколько я понимаю, здесь используется 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>

Но инструмент тестирования API eBay говорит, что он должен выглядеть так:

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

Итак, NetBeans обернул мой запрос тем, что я могу только предположить, это некоторая стандартная структура SOAP, и добавил «Запрос» к имени вызова.

Откуда у него это пространство имен «конверт» и почему его не использует eBay? И как я могу сказать NetBeans, чего я действительно хочу от него?

Мне также интересно, в чем преимущество eBay SDK по сравнению с этим методом (если он сработал).

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
1 274
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось это понять, и, как обычно, я ругаю себя за то, что не читал досконально документацию по API.

API eBay ожидает, что определенные заголовки HTTP будут установлены, прежде чем он выдаст что-либо, кроме 404.

После этого запрос SOAP, созданный NetBeans, был правильно интерпретирован eBay, и были возвращены ожидаемые результаты.

Значения HTTP-заголовка API покупок eBay

Руководство пользователя JAX-WS - установка заголовков HTTP

Другие вопросы по теме