首页 > 代码库 > Amazon MWS 上传数据 (三) 提交请求

Amazon MWS 上传数据 (三) 提交请求

前面介绍了设置服务和构造请求,现在介绍提交请求。

上传数据,查询上传操作的工作状态,和处理上传操作返回的报告操作使用的Amazon API 分别为:SubmitFeed(),FeedSubmissionListRequest(),GetFeedSubmissionResult().

  • SubmitFeed()-- 提交请求,代码示例:
 1  #region AmazonSubmitFeed 2         /// <summary> 3         /// 提交请求 4         /// </summary> 5         public void AmazonSubmitFeed(string fileName, string feedType) 6         { 7             MarketplaceWebServiceClient service = GetService(); 8             SubmitFeedRequest request = GetSubmitFeedRequest(fileName, feedType); 9             try10             {11                 SubmitFeedResponse response = service.SubmitFeed(request);12             }13             catch (MarketplaceWebServiceException ex)14             {15                 #region Log Error16 17                 #endregion 18             }19         }20         #endregion


大家可以看到上面先调用设置服务的方法,随后通过GetSubmitFeedRequest(fileName, feedType);构造请求,最后是提交请求,返回的response中有我们需要的feedSubmmissionId,我们需要将其保存下来。

  • GetFeedSubmissionList()--查询上传操作的工作状态,代码示例:
 1  #region FeedSubmissionList
2 /// <summary> 3 /// 提交请求 4 /// </summary> 5 public void FeedSubmissionList(string feedSubmmissionId) 6 { 7 MarketplaceWebServiceClient service = GetService(); 8 GetFeedSubmissionListRequest request = FeedSubmissionListRequest(feedSubmmissionId); 9 10 try11 {12 GetFeedSubmissionListResponse response = service.GetFeedSubmissionList(request);13 }14 catch (MarketplaceWebServiceException ex)15 {16 #region Log Error17 18 #endregion19 }20 }21 #endregion


上面的示例中我们通过调用GetFeedSubmissionList接口得到处理结果,处理结果有很多种,经常遇到的有_SUBMITTED_,_IN_PROGRESS_,_DONE_

其中_SUBMITTED_表示已收到请求,但尚未开始处理。

_IN_PROGRESS_表示请求正在处理。

_DONE_表示请求已处理。

注意:当结果FeedProcessingStatus==_DONE_时,并不代表我们上传操作被Amazon 服务器接受了,仅仅代表此次操作已经完成,不代表此次操作成功。

FeedProcessingStatus 枚举可以在官网查到 http://docs.developer.amazonservices.com/zh_CN/feeds/Feeds_FeedProcessingStatus.html#Feeds_FeedProcessingStatus

  • GetFeedSubmissionResult()--得到处理报告,示例代码:

 

 1  #region FeedSubmissionResult 2         /// <summary> 3         /// 提交请求 4         /// </summary> 5         public void FeedSubmissionResult(string feedSubmmissionId) 6         { 7             MarketplaceWebServiceClient service = GetService(); 8             GetFeedSubmissionResultRequest request = FeedSubmissionResultRequest(feedSubmmissionId); 9 10             try11             {12                 GetFeedSubmissionResultResponse response = service.GetFeedSubmissionResult(request);13             }14             catch (MarketplaceWebServiceException ex)15             {16                 #region Log Error17 18                 #endregion19             }20         }21         #endregion

上面的代码中,调用GetFeedSubmissionResult接口,将处理报告以xml(上一节构造请求的时候,已经设置)的形式保存在本地。

处理报告会有比较仔细的提示,告诉我们出错的什么地方,只要按此修改即可。