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             try
10             {
11                 SubmitFeedResponse response = service.SubmitFeed(request);
12             }
13             catch (MarketplaceWebServiceException ex)
14             {
15                 #region Log Error
16 
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 try 11 { 12 GetFeedSubmissionListResponse response = service.GetFeedSubmissionList(request); 13 } 14 catch (MarketplaceWebServiceException ex) 15 { 16 #region Log Error 17 18 #endregion 19 } 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             try
11             {
12                 GetFeedSubmissionResultResponse response = service.GetFeedSubmissionResult(request);
13             }
14             catch (MarketplaceWebServiceException ex)
15             {
16                 #region Log Error
17 
18                 #endregion
19             }
20         }
21         #endregion

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

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

 

 

posted @ 2014-06-13 15:47  秦岭农夫  阅读(3750)  评论(0编辑  收藏  举报