上一篇文章提到了Amazon 上传数据有三个步骤,但是每个步骤都需要构造服务和构造请求,服务是一样的,请求各不相同;这个很容易理解,这三个步骤都需要和Amazon服务器交互,所以他们的服务构造是一样的,但是三个步骤的功能各不相同,所以他们的请求(完成的功能)也不相同。

  • 现在先来说SubmitFeed的时候需要的请求文件,下面是请求文件的代码示例:
  #region 构造请求 Submit Amazon信息
private SubmitFeedRequest GetSubmitFeedRequest(string fileName, string feedType)//传入两个参数:1.文件名称 2.文件操作类别
{
SubmitFeedRequest request = new SubmitFeedRequest();
request.Merchant = merchantId;
request.MarketplaceIdList = new IdList();
request.MarketplaceIdList.Id = new List<string>(new string[] { marketplaceId }); request.FeedContent = File.Open(fileName, FileMode.Open, FileAccess.Read); request.ContentMD5 = MarketplaceWebServiceClient.CalculateContentMD5(request.FeedContent);
request.FeedContent.Position = ; request.FeedType = feedType; return request;
}
#endregion

fileName是我们需要上传的数据文件,feedType是这个文件的操作类别;feedType分为两大类,XML和Text,feedType据体值见 http://docs.developer.amazonservices.com/zh_CN/feeds/Feeds_FeedType.html

当上传的文件为Xml 格式时,常用的feedType为:

商品基本数据上传------_POST_PRODUCT_DATA_

定价数据上传-------_POST_PRODUCT_PRICING_DATA_

库存数据上传-------_POST_INVENTORY_AVAILABILITY_DATA_

商品图片上传-------_POST_PRODUCT_IMAGE_DATA_

商品关系上传-------_POST_PRODUCT_RELATIONSHIP_DATA_

运费数据上传------_POST_PRODUCT_OVERRIDES_DATA_

文件为Text 时,找到对应的feedType 即可。

上面的代码中用到了,merchantId和marketplaceId,这两个数据的值由商家提供。

上传完数据之后,我们会得到一个feedSubmmissionId,这个就是我们这次操作的标识。下面的操作会用到。

  • 上传数据结束之后我们需要知道上传操作执行的状态,这里就要使用接口FeedSubmissionListRequest(),构造请求FeedSubmissionListRequest信息,下面是代码示例:
  #region 构造请求FeedSubmissionListRequest信息
private GetFeedSubmissionListRequest FeedSubmissionListRequest(string feedSubmmissionId)
{ GetFeedSubmissionListRequest request = new GetFeedSubmissionListRequest();
request.Merchant = merchantId; request.FeedSubmissionIdList = new IdList();
request.FeedSubmissionIdList.Id = new List<string>(new string[] { feedSubmmissionId }); return request;
}
#endregion

其中feedSubmmissionId由上传数据得到。
注意这里需要的是merchantId和feedSubmmissionId的列表,示例中只提供了一个feedSubmmissionId,所以是查看一个操作的执行状态。当执行状态是_Done 时,就可以执行下一步操作了。

  • 得到Amazon处理报告,使用FeedSubmissionResultRequest()接口,示例代码如下:
  #region 构造请求FeedSubmissionResultRequest信息
private GetFeedSubmissionResultRequest FeedSubmissionResultRequest(string feedSubmmissionId)
{ GetFeedSubmissionResultRequest request = new GetFeedSubmissionResultRequest(); string path = feedSubmmissionId + ".xml";//保存结果至本地
8 FileStream stream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.ReadWrite); request.Merchant = merchantId;
request.FeedSubmissionId = feedSubmmissionId;
request.FeedSubmissionResult = stream; return request;
}
#endregion

这里我们也用到了feedSubmmissionId,因为他是Amazon给我们的标识,通过他才能找到我们的操作。
这里将处理结果报告直接存放到本地。我一直没想通,为什么返回的结果信息,是在构造请求的时候处理,为什么不是在得到结果后再设置保存路径等信息。这个疑问我可能没写清,

至此构造请求已经简述完毕。

Amazon MWS 上传数据 (二) 构造请求的更多相关文章

  1. Amazon MWS 上传数据 (一) 设置服务

    Amazon 上传数据的流程为: 通过 SubmitFeed 操作.加密标头和所有必需的元数据(包括 FeedType 的值在内),来提交 XML 或文本型数据文件.正如亚马逊 MWS的所有提交内容一 ...

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

    前面介绍了设置服务和构造请求,现在介绍提交请求. 上传数据,查询上传操作的工作状态,和处理上传操作返回的报告操作使用的Amazon API 分别为:SubmitFeed(),FeedSubmissio ...

  3. Amzon MWS API开发之 上传数据

    亚马逊上传数据,现有能操作的功能有很多:库存数量.跟踪号.价格.商品....... 我们可以设置FeedType值,根据需要,再上传对应的xml文件即可. 下面可以看看FeedType类型 这次我们拿 ...

  4. 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

    [源码下载] 重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 作者:webabcd 介绍重新想象 Windows 8.1 Sto ...

  5. TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)[转]

    TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub) Git-1.7.11-preview+GitExtensions244SetupComplete+T ...

  6. ueditor富文本上传图片的时候报错"未找上传数据"

    最近因为需求所以在ssh项目中使用了Ueditor富文本插件,但是在上传图片的时候总是提示“未找到上传数据”,之后百度了好久终于弄明白了.因为Ueditor在上传图片的时候会访问controller. ...

  7. Streamr助你掌控自己的数据(1)——教你5分钟上传数据至Streamr

    博客说明 所有刊发内容均可转载但是需要注明出处. 教你5分钟上传数据至Streamr 本系列文档主要介绍怎么通过Streamr管理自己的DATA,整个系列包括三篇教程文档,分别是:教你5分钟上传数据至 ...

  8. ajax上传数据

    ---恢复内容开始--- ajax上传数据,(简洁版) 1.上传普通同表单标签内容. 1.获取表单的内容 1. var file=$('#file').val();(放在点击事件后面) 2. var ...

  9. ASIHTTPRequest框架使用总结系列之阿堂教程5(上传数据)

    在上篇文章中,阿堂和网友们分享了如何用ASIHTTPRequest框架下载数据的实例,本篇阿堂将数据介绍如何用ASIHTTPRequest框架上传数据的应用实例.       数据上传是通过ASIHT ...

随机推荐

  1. Transition 所支持的css属性

    transition-property是用来指定当元素其中一个属性改变时执行transition效果: 所支持的属性类型如下: color: 通过红.绿.蓝和透明度组件变换(每个数值处理)如:back ...

  2. android 图片合成

    package com.ebensz.eink.demo; import java.io.File; import java.io.FileOutputStream; import android.a ...

  3. UVA 12563 Jin Ge Jin Qu hao

    dp-背包 开始用普通dp写了一发发现没法确定最大时间... 后来看到大牛机智的写法,嗯...dp表示当前状态能否成立:然后从条件最好的状态开始遍历,直到这个状态成立然后退出遍历. 具体的看代码吧.. ...

  4. python操作redis-set

    #!/usr/bin/python #!coding: utf-8 import redis if __name__=="__main__": try: conn=redis.St ...

  5. SQL Server 存储过程自启动

    前期准备: use master; create table LoginLog(LoginName nvarchar(32),LoginTime datetime); create procedure ...

  6. racle undo 解析

    racle undo 解析 声明一下:关于oracle的文章基于boobooke小布老师视频,在我学习的过程中,每有体会拿来分享,虽然从理解到整理分享很耗时,但我想这样的学习是扎实的. Undo是干嘛 ...

  7. 用JavaScript将数字转换为大写金额

    var digitUppercase = function(n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', '叁', '肆', ...

  8. 服务端无法获取到Ajax发送post请求的参数

    js类似于这样: function send() { var xhr = new XMLHttpRequest(); xhr.open("post", "AjaxTest ...

  9. Jquery基础之动画操作

    Jquery的动画效果能够轻松的为网页添加动画效果,为网页带来了新的活力. 一.show()方法和hide()方法 show()方法和hide()方法是jquery中最基本的动画方法.使用show() ...

  10. Elf 32

    [CentOS]安装软件:/ld-linux.so.2: ELF interpreter解决   环境: [orangle@localhost Downloads]$ uname -m&&am ...