amazon api 请求返回response xml解析
来源:互联网 发布:网络音响系统布线图 编辑:程序博客网 时间:2024/05/21 07:03
private void setProductWarehouse(FbaWarehouse fbaWarehouse,OrderItem orderItem, ProductsInfo product) { GetMatchingProductForIdRequest request=new GetMatchingProductForIdRequest(); request.setSellerId(fbaWarehouse.getSellerId()); request.setMarketplaceId(fbaWarehouse.getMarketPlaceId()); request.setIdType("SellerSKU"); List<String> id=new ArrayList<>(); id.add(orderItem.getSellerSKU()); IdListType idList=new IdListType(); idList.setId(id); request.setIdList(idList); MarketplaceWebServiceProductsClient serviceProductsClient=amazonProductSdk.createMarketplaceWebService(fbaWarehouse); try { GetMatchingProductForIdResponse response=serviceProductsClient.getMatchingProductForId(request); ResponseHeaderMetadata rhmd = response.getResponseHeaderMetadata(); logger.info("setProductWarehouse respon header:"+rhmd.toString()); logger.info("setProductWarehouse respon toXML:"+response.toXML()); if(response.isSetGetMatchingProductForIdResult()){ List<GetMatchingProductForIdResult> amazonProducts=response.getGetMatchingProductForIdResult(); if(amazonProducts.size()<1){ logger.info("amazonProducts size <1,SellerSKU"+orderItem.getSellerSKU()); return; } for (GetMatchingProductForIdResult result : amazonProducts) { if("SellerSKU".equals(result.getIdType()) &&orderItem.getSellerSKU().equals(result.getId()) &&"Success".equals(result.getStatus())){ if(result.getProducts().getProduct().size()>1){ logger.info("amazon import SellerSKU:"+orderItem.getSellerSKU()+" size>1"); break; } for(Product amazonProduct : result.getProducts().getProduct()){ for (Object obj : amazonProduct.getAttributeSets().getAny()) { Node nd =(Node)obj; for(int i=0;i<nd.getChildNodes().getLength();i++){ if("ns2:PartNumber".equals(nd.getChildNodes().item(i).getNodeName())){ String manufactoryPartNmuber = StringUtils.trim(nd.getChildNodes().item(i).getTextContent()); if (StringUtils.isNotBlank(manufactoryPartNmuber)) { // Pattern p = Pattern.compile("^.*#wh=[1-9]{1}[0-9]{1}$"); logger.info("sku=" + orderItem.getSellerSKU() + " ;manufactoryPartNmuber=" + manufactoryPartNmuber); Pattern p = Pattern.compile("^.*#wh=(21|23|28)$", Pattern.DOTALL); if (p.matcher(manufactoryPartNmuber).matches()) { String whId = manufactoryPartNmuber.substring(manufactoryPartNmuber.length() - 2); Warehouse warehouse = product.new Warehouse(); warehouse.setId(Integer.valueOf(whId)); warehouse.setQty(orderItem.getQuantityOrdered()); product.getWarehouses().add(warehouse); logger.info("setProductWarehouse get warehouseId:"+whId); } } break; } } } } } } }else{ logger.info("GetMatchingProductForIdResponse not set result"+ ToStringBuilder.reflectionToString(response)); } }catch (MarketplaceWebServiceProductsException ex) { // Exception properties are important for diagnostics. logger.info("Service Exception:"); ResponseHeaderMetadata rhmd = ex.getResponseHeaderMetadata(); if(rhmd != null) { logger.info("RequestId: "+rhmd.getRequestId()); logger.info("Timestamp: "+rhmd.getTimestamp()); } logger.info("Message: "+ex.getMessage()); logger.info("StatusCode: "+ex.getStatusCode()); logger.info("ErrorCode: "+ex.getErrorCode()); logger.info("ErrorType: "+ex.getErrorType()); throw ex; } }
@Servicepublic class AmazonProductSdk { private static final Logger logger = LoggerFactory.getLogger(AmazonProductSdk.class); @Autowired private FbaProductMatcher fbaProductMatcher; public MarketplaceWebServiceProductsClient createMarketplaceWebService(FbaWarehouse fbaWarehouse) { MarketplaceWebServiceProductsConfig config = new MarketplaceWebServiceProductsConfig(); String endpointUrl = fbaProductMatcher.getFbaProductMatcher(fbaWarehouse.getWarehouseCode()); config.setServiceURL(endpointUrl); logger.info("MarketplaceWebServiceProductsClient"+ ToStringBuilder.reflectionToString(config)); MarketplaceWebServiceProductsClient service = new MarketplaceWebServiceProductsClient( fbaWarehouse.getAccessKeyId(), fbaWarehouse.getSecretAccessKey(), fbaWarehouse.getApplicationName(), fbaWarehouse.getApplicationVersion(), config); return service; }}
@Componentpublic class FbaProductMatcher implements InitializingBean { private Map<FbaWareHouseCode, String> fbaProductMatchers = new HashMap<FbaWareHouseCode, String>(); private final String CAEndPoint="https://mws.amazonservices.ca/Products/2011-10-01"; private final String USEndPoint="https://mws.amazonservices.com/Products/2011-10-01"; private final String DEEndPoint="https://mws-eu.amazonservices.com/Products/2011-10-01"; private final String ESEndPoint="https://mws-eu.amazonservices.com/Products/2011-10-01"; private final String FREndPoint="https://mws-eu.amazonservices.com/Products/2011-10-01"; private final String INEndPoint="https://mws.amazonservices.in/Products/2011-10-01"; private final String ITEndPoint="https://mws-eu.amazonservices.com/Products/2011-10-01"; private final String UKEndPoint="https://mws-eu.amazonservices.com/Products/2011-10-01"; private final String JPEndPoint="https://mws.amazonservices.jp/Products/2011-10-01"; private final String CNEndPoint="https://mws.amazonservices.com.cn/Products/2011-10-01"; @Override public void afterPropertiesSet() throws Exception { fbaProductMatchers.put(FbaWareHouseCode.CA, CAEndPoint); fbaProductMatchers.put(FbaWareHouseCode.ES, ESEndPoint); fbaProductMatchers.put(FbaWareHouseCode.DE, DEEndPoint); fbaProductMatchers.put(FbaWareHouseCode.FR, FREndPoint); fbaProductMatchers.put(FbaWareHouseCode.IT, ITEndPoint); fbaProductMatchers.put(FbaWareHouseCode.UK, UKEndPoint); fbaProductMatchers.put(FbaWareHouseCode.US_HOME, USEndPoint); } public String getFbaProductMatcher(String fbaWareHouseCode) { return fbaProductMatchers.get(FbaWareHouseCode.valueOf(fbaWareHouseCode)); }}
package org.w3c.dom.Node;
阅读全文
0 0
- amazon api 请求返回response xml解析
- Response 返回xml,json
- 向服务器发送请求,并解析返回的XML
- android http请求并解析返回的xml
- jquery ajax 请求、解析返回来的xml数据
- JAVA: 发送请求并解析返回的XML响应
- 微信 request请求解析验证 与 response 返回消息组装 工具类
- API返回XML文档的解析并取值
- Retrofit请求,返回response时报错
- javax.xml.bind.annotation 包解析xml @XmlElement @XmlAttribute接收请求返回xml格式数据
- 解析HTTP POST方式请求的xml数据、本地XML文件数据, 并返回JSON字符串
- Android通过post请求发送一个xml,解析返回xml数据
- XML格式数据请求的解析与返回XML数据的组织方法
- 请求内容分析&Request+Response解析
- xml请求,xmlpull解析
- xml解析网络请求
- js请求解析xml
- 网络请求XML解析XML
- 微信小程序 Node.js (基础五) EventEmitter
- 20170704unable to find valid certification path to requested target
- JAVA8新特性详解
- vue-cli项目跨域处理
- 自适应的经典布局 少任意一个模块都能自适应
- amazon api 请求返回response xml解析
- Linux中command not found及登录界面用户切换问题
- Android 快速开发之几个常见的对话框
- 五.scrapy CSVFeedSpider
- 解决移动端文本框被原生键盘弹出后挡住文本框
- [HY000][1366] Incorrect string value: '\xE3\x81\x94\xE6\xB3\xA8...' for column 'content' at row 1
- webuploader 百度上传组件
- js立即执行函数,jqueryReady和Onload执行顺序比较
- rotate-list