我'm trying to make my first web service client for the eBay API using the NetBeans '新的Web服务客户端向导和WSDL找到here . 我的理解是,这是使用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结构中,并将“请求”附加到调用的名称 .
它从哪里获得这个'信封'命名空间,为什么eBay不使用它?我怎样才能告诉NetBeans我真正想要它做什么?
我也想知道eBay SDK对这种方法的好处是什么(如果它有效) .
1 回答
我设法弄明白,像往常一样,我正在努力不彻底阅读API文档 .
eBay API需要先设置某些HTTP标头,然后再提供404以外的其他标头 .
之后,eBay正确解释了NetBeans提出的SOAP请求,并返回了预期的结果 .
eBay shopping API HTTP header values
JAX-WS user guide - setting HTTP headers