Deppon接口开发
一。1) 支持的传输协议
http ,暂时只支持HTTP协议进行通信。
(2) 支持的数据传输格式
Json ,所有接口暂只支持json消息格式。
(3) 编码格式:UTF-8
交互编码格式统一用 UTF-8,避免传递中文数据出现乱码。
(4) 安全验证
在数据传输过程中,为避免数据被篡改,需要对数据进行加密。
a. 在传输的参数中,既要传递原始的json字符串params,又要传输加密后的摘要digest.
摘要的生成规则是 base64(MD5(params+apikey+timestamp)).
params 参数表的json格式
- /// <summary>
- /// 德邦密文生成器
- /// </summary>
- /// <param name="param"></param>
- /// <returns></returns>
- public static string createdigest(string param)
- {
- byte[] buffer = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(param);
- System.Security.Cryptography.MD5CryptoServiceProvider check;
- check = new System.Security.Cryptography.MD5CryptoServiceProvider();
- byte[] somme = check.ComputeHash(buffer);
- string ret = "";
- foreach (byte a in somme)
- {
- if (a < )
- ret += "" + a.ToString("X");
- else
- ret += a.ToString("X");
- }
- string re = Convert.ToBase64String(System.Text.Encoding.GetEncoding("UTF-8").GetBytes(ret.ToLower()));
- return re;
- }
- /// <summary>
- /// 德邦时间差生成
- /// </summary>
- /// <returns></returns>
- public static string createTimestamp()
- {
- TimeSpan ts = DateTime.UtcNow - new DateTime(, , , , , , );
- string time = Convert.ToInt64(ts.TotalMilliseconds).ToString();
- return time;
- }
Post 信息 http:
- Uri myUri = new Uri("http://58.40.17.67/dop/order/alterOrder.action");
- Encoding myEncoding = Encoding.GetEncoding("gb2312");
- UTF8Encoding encoding2 = new UTF8Encoding();
- string sendPrams2 = System.Web.HttpUtility.UrlEncode("companyCode", myEncoding) + "=" + System.Web.HttpUtility.UrlEncode(COMPARNY, myEncoding) + "&" + System.Web.HttpUtility.UrlEncode("params", myEncoding) + "=" + System.Web.HttpUtility.UrlEncode(jsonSaveOrder, encoding2) + "&" + System.Web.HttpUtility.UrlEncode("digest", myEncoding) + "=" + System.Web.HttpUtility.UrlEncode(digest, myEncoding) + "&" + System.Web.HttpUtility.UrlEncode("timestamp", myEncoding) + "=" + System.Web.HttpUtility.UrlEncode(time, myEncoding);
- HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(myUri);
- webRequest.Method = "POST";
- webRequest.ContentType = "application/x-www-form-urlencoded";
- byte[] setStr = System.Text.Encoding.UTF8.GetBytes(sendPrams2);
- webRequest.ContentLength = setStr.Length;
- using (System.IO.Stream s = webRequest.GetRequestStream())
- {
- s.Write(setStr, , setStr.Length);
- s.Close();
- }
- try
- {
- HttpWebResponse httpWebResponse = (HttpWebResponse)webRequest.GetResponse();
- using (System.IO.StreamReader sr = new System.IO.StreamReader(httpWebResponse.GetResponseStream(), System.Text.Encoding.UTF8))
- {
- string returnMessage = sr.ReadToEnd();
异步操作:
Task task = new Task(() =>
{});
task.Start();
(5)WCF 。。。
Deppon接口开发的更多相关文章
- 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- 《Python Web 接口开发与测试》---即将出版
为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化相关的,工作中的接口自动化颇有成效. 我一直是一个没有测试大格局的人,在各种移动测试技术爆发的这一年,我却默默耕耘着自己的一亩三分地儿(We ...
- 浅谈 PHP 与手机 APP 开发(API 接口开发) -- 转载
转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人 一.先简单回答两个问题: 1.PHP 可以开发客户端? 答:不可以,因 ...
- 支付宝WAP支付接口开发(Node/Coffee语言)
此博客不更新很久了, 更新的文档在这, 有兴趣到这里围观: http://neutra.github.io/2013/%E6%94%AF%E4%BB%98%E5%AE%9DWAP%E6%94%AF%E ...
- C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号 ...
- C#.NET微信公众账号接口开发系列文章整理--微信接口开发目录,方便需要的博友查询
前言: 涉及微信接口开发比较早也做的挺多的,有时间的时候整理了开发过程中一些思路案例,供刚学习微信开发的朋友参考.其实微信接口开发还是比较简单的,但是由于调试比较麻烦,加上微信偶尔也会给开发者挖坑,并 ...
- C#/ASP.NET MVC微信公众号接口开发之从零开发(四) 微信自定义菜单(附源码)
C#/ASP.NET MVC微信接口开发文章目录: 1.C#/ASP.NET MVC微信公众号接口开发之从零开发(一) 接入微信公众平台 2.C#/ASP.NET MVC微信公众号接口开发之从零开发( ...
- APP数据接口开发的一些经验
刚接到这样的任务时,没有感觉到任何压力,不就是给移动端应用提供数据吗?那边发来参数,这边处理数据,返回JSON.做网站开发时经常使用ajax请求后台数据,不就是这么回事吗.于是,在确认完需求后就开始干 ...
- 浅谈 PHP 与手机 APP 开发(API 接口开发)
本文内容转载自:http://www.thinkphp.cn/topic/5023.html 这个帖子写给不太了解PHP与API开发的人一.先简单回答两个问题:1.PHP 可以开发客户端?答:不可以, ...
随机推荐
- MySQL 触发器的定义
-- Insert DELIMITER $$ USE `testdatabase`$$ DROP TRIGGER /*!50032 IF EXISTS */ `Trigger_XXX_INSERT`$ ...
- C#使用seleium实现一个自动登录器
1.http://docs.seleniumhq.org/ 下载seleium包 2.新建一个C#项目,比如控制台,引用seleium包中的dll using System; using System ...
- AsyncTask使用注意事项
AsyncTask是android自带的一个异步处理线程 它带了很多参数 都很方便使用 但是有一些注意事项 1: 官网说明: AsyncTasks should ideally be used for ...
- iOS-tableView点击下拉菜单
#import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableVi ...
- hdu1064Financial Management
Problem Description Larry graduated this year and finally has a job. He’s making a lot of money, but ...
- 两个string数组对应比较
最近做的array string类型对比.这个可能比较复杂,用的是linq 是请教别人的,我在这里记录一下 jquery 方法里面的数组 function arrtxt() { var arrt= [ ...
- nodejs的简单服务器程序
下面是参考<Jquery.Jquery UI 及Jquery Mobile>一书中的nodej服务器程序 var http = require('http'), url = require ...
- php的一些小笔记--数学函数
通常我们使用的数学函数不多,经常出现的有 floor 地板->舍去 ceil 天花板->进一 round 四舍五入 rand 随机数 mt_rand 产生更好的随机数 pow 指数表达 ...
- $_FILES系统函数
PHP编程语言中的常见的$_FILES系统函数用法有: $_FILES['myFile']['name'] 显示客户端文件的原名称. $_FILES['myFile']['type'] 文件的 MIM ...
- 网易2014校园招聘杭州Java笔试题
10) ABC http://soft.chinabyte.com/os/56/12516056.shtml 11) BD. 12) AC. http://blog.sina.com.cn/s/blo ...