我正在尝试使用NetBeans的新Web服务客户端向导和WSDL here创建我的第一个eBay API 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结构中,并将“请求”附加到调用的名称。
它从哪里获得这个'信封'命名空间,为什么eBay不使用它?我怎样才能告诉NetBeans我真正想要它做什么?
我也想知道eBay SDK对这种方法的好处是什么(如果有效)。
答案 0 :(得分:0)
我设法弄明白了,像往常一样,我一直在努力不彻底阅读API文档。
eBay API要求在提供除404之外的任何内容之前设置某些HTTP标头。
之后,eBay正确解释了NetBeans提出的SOAP请求,并返回了预期的结果。