java - 如何通过 eBay Trading API [Java] 中的 GetSellerList 调用获取商品的 UPC
问题描述
我正在尝试GetSellerList
使用 eBay Trading API 获取通过调用返回的商品的 UPC。
我能够使用以下代码成功执行 API 调用:
public void getSellerItemsList() throws ApiException, SdkException, Exception
{
String EBayProfile = "XXXXXXXXXXXX";
String sellerID = "XXXXXXXXXXXXXX";
ApiContext apiContext = getAPIContext(EBayProfile);
GetSellerListCall getSellerList = new GetSellerListCall ();
getSellerList.setApiContext(apiContext);
DetailLevelCodeType[] detailLevelCodeType = new DetailLevelCodeType[1];
detailLevelCodeType[0] = DetailLevelCodeType.RETURN_ALL;
getSellerList.setDetailLevel(detailLevelCodeType);
Calendar fromTime = Calendar.getInstance();
fromTime.add(Calendar.DAY_OF_MONTH, -3);
Calendar toTime = Calendar.getInstance();
toTime.setTime(Calendar.getInstance().getTime());
TimeFilter startTimeFilter = new TimeFilter(fromTime, toTime);
getSellerList.setStartTimeFilter(startTimeFilter);
getSellerList.setUserID(sellerID);
getSellerList.setEnableCompression(true);
WarningLevelCodeType warningLevel = WarningLevelCodeType.HIGH;
getSellerList.setWarningLevel(warningLevel);
PaginationType paginationType = new PaginationType();
paginationType.setEntriesPerPage(199);
paginationType.setPageNumber(1);
ItemType[] items = getSellerList.getEntireSellerList();
for (ItemType item : items) {
System.out.println("\nTitle: " + item.getTitle());
// For some reason this value is always equal to null (never prints)
if (item.getAttributeArray() != null) {
AttributeArrayType attributeType = item.getAttributeArray();
System.out.println("Attributes length: " + attributeType.getAttributeLength());
}
// For some reason this value is always equal to null (never prints)
if (item.getProductListingDetails() != null) {
UPC = item.getProductListingDetails().getUPC();
System.out.println("UPC: " + UPC);
}
// For some reason this value is always equal to null (never prints)
if (item.getVariations() != null) {
VariationsType itemVariations = item.getVariations();
for (int x = 0; x < itemVariations.getVariationLength(); x++) {
VariationType variation = itemVariations.getVariation(x);
VariationProductListingDetailsType variationListingDetails = variation.getVariationProductListingDetails();
UPC = variationListingDetails.getUPC(); // UPC always missing
}
}
// For some reason this value is always equal to null (never prints)
if (item.getItemSpecifics() != null) {
NameValueListArrayType itemSpecifics = item.getItemSpecifics();
NameValueListType[] nameValueList = itemSpecifics.getNameValueList();
}
}
}
}
调用成功执行,但 UPC 为空(无论我尝试从何处提取它,如前面的代码所示)。
eBay Docs明确声明此调用返回 UPC。
我究竟做错了什么?
解决方案
GetSellerList 不包括项目细节。
您必须使用 eBay 购物 API 调用 - GetSingleItem 和 IncludeSelector - ItemSpecifics 来获取 GetSellerList 结果中每个项目的 UPC
推荐阅读
- axios - axios 拦截错误 Promise 或抛出错误
- flink-streaming - Flink SQL Continuous Window Top-N 查询结果不一致
- c++ - Winapi - 改变窗口样式,一些宏导致窗口根本不显示
- c# - C# 对具有多列的列表中的值求和
- postfix-mta - Postfix 尝试从 root@info@domain.com 发送邮件
- reactjs - 如何使用 Jest 和测试库更改组件状态?
- angular - Angular:如何为 Angular 应用程序中的功能创建测试模块?
- python - 为什么python脚本线程不起作用?
- java - 解析由键“1”、“2”给出的隐式 JSON 列表
- android - Android中AutocompleteSupportFragment的样式文本颜色和提示颜色