Amazon MWS 上传数据 (二) 构造请求

时间:2023-02-26 23:04:56

上一篇文章提到了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&period;1 Store Apps &lpar;89&rpar; - 通信的新特性&colon; 下载数据&comma; 上传数据&comma; 上传文件

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

  5. TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)&lbrack;转&rsqb;

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

  6. ueditor富文本上传图片的时候报错&quot&semi;未找上传数据&quot&semi;

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

  7. Streamr助你掌控自己的数据&lpar;1&rpar;——教你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. I&sol;O 函数总结

    经过一段时间的学习,发现字符处理时或者文件处理时,经常需要进行输入(读入)和输出,而可供选择的函数很多,现在反而容易搞混淆,下面就对常用的7个 输入输出函数 进行总结和比较,以便于区分和熟练掌握. 标 ...

  2. 手机app开发:浅谈APP登录方式的优劣

    手机app开发公司亿合科技要是给你一个机会设计一款APP,你会用什么方式做这个APP的登录模块?根据APP的业务模型的不同会有不同的设计方法.如果是偏内容型的APP,需要优先展示内容给用户,当用户需要 ...

  3. 简单学会&period;net remoting

    简介 •.net remoting是.net在RPC分布式应用的技术.首先,客户端通过 remoting访问通道以获得服务端对象,再通过代理解析为客户端对象,通过通道来实现远程对象的调用. 原理 •远 ...

  4. &lbrack;反汇编练习&rsqb; 160个CrackMe之027

    [反汇编练习] 160个CrackMe之027. 本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注 ...

  5. kickstart自动化安装--tftp&plus;nfs&plus;dhcp

    使用kickstart实现Centos 自动化安装 Kickstart自动化安装简介: 规模化:同时装配多台 服务器 自动化 :安装系统,配置各种服务 远程实现:不需要光盘,U盘等安装介质 优势: ( ...

  6. 为什么不要使用 async void?

    问题 在使用 Abp 框架的后台作业时,当后台作业抛出异常,会导致整个程序崩溃.在 Abp 框架的底层执行后台作业的时候,有 try/catch 语句块用来捕获后台任务执行时的异常,但是在这里没有生效 ...

  7. Trouble shooting(问题解决):centos 7 gnome show someting has gone wrong&period;

    centos 7 升级 内核 3.10,startx启动不了了.进界面也是oh,no!someting has gone wrong . 参见帖子:http://bbs.csdn.net/topics ...

  8. MySQL双主&period;md

    MySQL 双主配置 环境说明 系统 IP 主机名 mysql版本 CentOS 6.8 192.168.197.61 C6-node1 5.6.36 CentOS 6.8 192.168.197.6 ...

  9. 七 使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  10. Tensorflow博文列表

    tensorflow:https://wenku.baidu.com/view/489ecc9727fff705cc1755270722192e44365853.html 语义分割SegNet:htt ...