EBay .Net SDK Api 实践
1.请求流程介绍
提供SOA地址:https://api.ebay.com/wsapi
WSDL生成的代码在WebService.cs文件当中。
ApiCall封装了所有的RPC,其核心实现在SendRequest里面,其中有两个事件,请求之前,与请求之后

CustomSecurityHeaderType封装了用户认证信息

SoapHttpClientProtocolEx继承SoapHttpClientProtocol,加上了SoapRequest,SoapResponse属性。用来生成请求和响应的XML报文。
使用ApiLogManager进行日志记录
2.实践
- 非string字段,使用 "属性Specified" = true
如:
pagination.PageNumberSpecified = true;
- 捕获ApiException,遍历Errors来细化错误
如:在ReviseInventoryStatus时,一次调整四个SKU就需要遍历错误结果
- catch (ApiException
apiEx) - {
- var str = string.Empty;
- foreach (ErrorType error in apiEx.Errors)
- {
- if (error.SeverityCode == SeverityCodeType.Error)
- {
- foreach (ErrorParameterType ePara in error.ErrorParameters)
- {
- str += ePara.ParamID + ":" + ePara.Value + "
"; - if (ePara.ParamID == "SKU")
- {
- returns.Remove(returns.First(zw => zw.SKU == ePara.Value));
- }
- }
- str += error.LongMessage + Environment.NewLine;
- }
- }
- //有错误的
- NotifyAndLog(string.Format(ResPriceCaptureAndRevise.Wrong_PriceRevised, "", str),
- LogLevel.Error, accPriceInfo.SellerAccount);
- }
- 使用ApiResponse.Ack
如果使用Ack来判断,可能某些有数据返回的时候,状态不是Success,而是Warning
- if (apicall.ApiResponse.Ack == AckCodeType.Success || apicall.ApiResponse.Ack == AckCodeType.Warning)
- {
- //
- }
- 分页
Pagination
- PaginationType
pager = new PaginationType(); - pager.EntriesPerPage = 100;
- pager.EntriesPerPageSpecified = true;
- for (int page = 1; page <= totalPage; page++)
- {
- pager.PageNumber = page;
- pager.PageNumberSpecified = true;
- if (apicall.ApiResponse.Ack == AckCodeType.Success || apicall.ApiResponse.Ack == AckCodeType.Warning)
- {
- // 保存数据
- totalNum = (apicall.ApiResponse.PaginationResult == null ? 0 : apicall.ApiResponse.PaginationResult.TotalNumberOfEntries);
- totalPage = (apicall.ApiResponse.PaginationResult == null ? 0 : apicall.ApiResponse.PaginationResult.TotalNumberOfPages);
- }
- }
在ApiResponse. PaginationResult的TotalNumberOfEntries和TotalNumberOfPages获取总数和分页数。
EBay .Net SDK Api 实践的更多相关文章
- Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)
内容整理自官方开发文档 本文档的目标是将 Sentry SDK 中性能监控功能的演变置于上下文中. 我们首先总结了如何将性能监控添加到 Sentry 和 SDK, 然后我们讨论 identified ...
- ASP.NET Web API实践系列04,通过Route等特性设置路由
ASP.NET Web API路由,简单来说,就是把客户端请求映射到对应的Action上的过程.在"ASP.NET Web API实践系列03,路由模版, 路由惯例, 路由设置"一 ...
- Android SDK API (2.2,2.3,3.0)中文版文档
转的一篇.觉得很有用. Android SDK API (2.2,2.3,3.0)中文版文档 地址:http://android.laoguo.org固定连接:http://www.laoguo.or ...
- jQuery.localStorage() - jQuery SDK API
jQuery.localStorage() - jQuery SDK API jQuery.localStorage() From jQuery SDK API Jump to: navigati ...
- MonkeyImage API 实践全记录
1. 背景 鉴于网上使用MonkeyImage的实例除了方法sameAs外很难找到,所以本人把实践各个API的过程记录下来然自己有更感性的认识,也为往后的工作打下更好的基础.同时也和上一篇文章& ...
- Expo大作战(四十)--expo sdk api之 Calendar,Constants
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(三十九)--expo sdk api之 DocumentPicker,Contacts(获取手机联系人信息),Branch
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(三十八)--expo sdk api之 FileSystem(文件操作系统)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- Expo大作战(三十七)--expo sdk api之 GLView,GestureHandler,Font,Fingerprint,DeviceMotion,Brightness
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
随机推荐
- 【2016-10-11】Linux系统常用的关机或重启命令shutdown、reboot、halt、poweroff、init 0及init 6的联系与区别
Linux下常用的关机/重启命令一般包括: shutdown.reboot.halt.poweroff等,当然了我们可以使用init 运行等级runlevel 0即halt来关机,或使用init 运行 ...
- JS打造的跟随鼠标移动的酷炫拓扑图案
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- mybatis配置问题
//当构造函数有多个参数时,可以使用constructor-arg标签的index属性,index属性的值从0开始. <bean id="sqlSession" class= ...
- jquery学习笔记---requirejs 和模块化编程
http://www.cnblogs.com/lisongy/p/4711056.html jquery模块化编程:http://www.cnblogs.com/digdeep/p/4602460.h ...
- APP消息推送:通知和透传
目前市场上的消息推送方式有两种:通知和透传.什么是透传?透传即是透明传送,即传送网络无论传输业务如何,只负责将需要传送的业务传送到目的节点,同时保证传输的质量即可,而不对传输的业务进行处理.透传消息, ...
- CI重定向:php(codeigniter)中如何重定向
Q: 在保存完数据之后需要重定向,防止数据重复提交. 我使用$this->方法名();跳转,发现不能达到重定向的效果(地址栏没变) 请教高手重定向怎么用 A: $this->load-&g ...
- Dapper.NET 使用简单举例
概述 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂的配置文件,一个单文 ...
- 图结构练习——判断给定图是否存在合法拓扑序列(dfs算法(第一个代码),邻接矩阵(前两个代码),邻接表(第三个代码))
sdut 2140 图结构练习——判断给定图是否存在合法拓扑序列 Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 给定一个有向图 ...
- 利用YaHoo YUI实现Javascript CSS 压缩 分类: C# 2014-07-13 19:07 371人阅读 评论(0) 收藏
网站优化时,往往需要对js文件,css文件进行压缩,以达到减少网络传输数据,减少网页加载时间:利用YaHoo的YUI可以实现Javascript,CSS,压缩,包括在线的js压缩和程序压缩,发现C#也 ...
- PowerDesigner(PowerDesigner15.1.0.2850)下载、安装以及破解
转自:http://www.cnblogs.com/Fonkie/articles/1600662.html 一.先安装PowerDesigner15(PowerDesigner15.1.0.2850 ...