我需要在Ebay上找到不同类别的产品。但是当我使用教程代码时
ebay.apis.eblbasecomponents.FindProductsRequestType request = new ebay.apis.eblbasecomponents.FindProductsRequestType();
request.setCategoryID("Art");
request.setQueryKeywords("furniture");
我收到以下错误:QueryKeywords, CategoryID and ProductID cannot be used together.
那怎么办?
编辑:教程代码为here.
EDIT2:教程代码的链接显然已经死了。我继续搜索,category
无法与keyword
搜索一起使用,但有一个Domain
可能会添加到请求中,但遗憾的是它不在API中 - 所以我不确定它是否确实可以完成。
不太好的Ebay API文档是here.
这是我的完整要求:
Shopping service = new ebay.apis.eblbasecomponents.Shopping();
ShoppingInterface port = service.getShopping();
bp = (BindingProvider) port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
// Add the logging handler
List<Handler> handlerList = bp.getBinding().getHandlerChain();
if (handlerList == null) {
handlerList = new ArrayList<Handler>();
}
LoggingHandler loggingHandler = new LoggingHandler();
handlerList.add(loggingHandler);
bp.getBinding().setHandlerChain(handlerList);
Map<String,Object> requestProperties = bp.getRequestContext();
Map<String, List<String>> httpHeaders = new HashMap<String, List<String>>();
requestProperties.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
httpHeaders.put("X-EBAY-API-CALL-NAME", Collections.singletonList(CALLNAME));
httpHeaders.put("X-EBAY-API-APP-ID", Collections.singletonList(APPID));
httpHeaders.put("X-EBAY-API-VERSION", Collections.singletonList(VERSION));
requestProperties.put(MessageContext.HTTP_REQUEST_HEADERS, httpHeaders);
// initialize WS operation arguments here
FindProductsRequestType request = new FindProductsRequestType();
request.setAvailableItemsOnly(true);
request.setHideDuplicateItems(true);
request.setMaxEntries(2);
request.setPageNumber(1);
request.setQueryKeywords("Postcard");
request.setDomain("");
最后一行,应该像我需要的那样设置域,不会编译。不知道怎么解决这个问题?
编辑3:我放弃了Java API,而是直接rest
。 ebay上的类别现在实际上是域名,URL如下所示:
String findProducts = "http://open.api.ebay.com/shopping?callname=FindProducts&responseencoding=XML&appid=" + APPID
+ "&siteid=0&version=525&"
+ "&AvailableItemsOnly=true"
+ "&QueryKeywords=" + keywords
+ "&MaxEntries=10"
+ "&DomainName=" + domainName;
这样可行,但你想听一个笑话吗?似乎并非所有域都列出here,因此它并没有真正解决这个问题。 Ebay相当令人失望的工作。
答案 0 :(得分:0)
根据类别中的关键字查找项目的解决方案是使用findItemsAdvanced
。如果FindProducts
的文档声明了这一点,可以为我节省很多时间,而不仅仅是说您可以使用关键字搜索或类别搜索。
这是API URL
:
http://open.api.ebay.com/shoppingcallname=findItemsAdvanced&responseencoding=XML&appid=" + APPID
+ "&siteid=0&version=525&"
+ "&AvailableItemsOnly=true"
+ "&QueryKeywords=" + keywords
+ "&categoryId=" + categoryId
+ "&MaxEntries=50
完成后,如果您想获得所有顶级类别的列表,可以使用它:
http://open.api.ebay.com/Shopping?callname=GetCategoryInfo&appid=" + APPID + "&siteid=0&CategoryID=-1&version=729&IncludeSelector=ChildCategories