主类

class Program
    {
        static void Main(string[] args)
        {
            string cmdStr = "order.list";
            int soureStr = 36524;//此处填入账户
            string secertStr = "123131243245454534";//此处填入密钥
            DateTime d1 = DateTime.Now;
            
            string timeString = ToTimestamp(d1).ToString("0");
            string ticket = System.Guid.NewGuid().ToString().ToUpper();
            Sing sin = new Sing();
            sin.cmd = cmdStr;
            sin.timestamp = timeString;
            sin.version = 2;
            sin.ticket = ticket;
            sin.source = soureStr;
            sin.secret = secertStr;
            Shop shop = new Shop();
            shop.end_time = 1442559208;
            shop.page = 1;
            shop.start_time = 1442558000;
            shop.status = "1,10";
            sin.body = shop;
            string js = JsonConvert.SerializeObject(sin);
            //对所有/进行转义
            js = js.Replace("/", "\\/");
            //中文字符转为unicode
            js = chinaToUnicode(js);
            Console.WriteLine(js);
            string content = CmdSerializer.ToMD5(js);
            Console.WriteLine(content);
            Cmd cmd = new Cmd();
            cmd.body = shop;
            cmd.cmd = cmdStr;
            cmd.timestamp = timeString;
            cmd.version = 2;
            cmd.ticket = ticket;
            cmd.source = soureStr;
            cmd.sign = content;

string data = JsonConvert.SerializeObject(cmd);
            data = data.Replace("/", "\\/");
            //中文字符转为unicode
            data = chinaToUnicode(data);
            Console.WriteLine(data);

byte[] utf8 = Encoding.UTF8.GetBytes(data);
            data = Encoding.UTF8.GetString(utf8);
            string ret = Ser.HttpPost("http://api.waimai.baidu.com", data);
            Console.WriteLine(ret);
            Console.ReadKey();
        }
        static double ToTimestamp(DateTime value)
        {
            TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());
            return (double)span.TotalSeconds;
        }
        public static String chinaToUnicode(String str)
        {
            String result = "";
            for (int i = 0; i < str.Length; i++)
            {
                int chr1 = (char)str[i];
                if (chr1 >= 19968 && chr1 <= 171941)
                {//汉字范围 \u4e00-\u9fa5 (中文)
                    result += "\\u" + Convert.ToString(int.Parse(chr1.ToString()), 16); ;
                }
                else
                {
                    result += str[i];
                }
            }
            return result;
        }
    }

shop类

class Shop
    {
        public int end_time { get; set; }
        public int page { get; set; }
        public int start_time { get; set; }
        public string status { get; set; }
        //public string order_id{ get; set; }
        //public string name { get; set; }
    }

Cmd类

class Cmd
    {
        public string cmd { get; set; }
        public string timestamp { get; set; }
        public int version { get; set; }
        public string ticket { get; set; }
        public int source { get; set; }
        public string sign { get; set; }
        public object body { get; set; }
    }

CmdSerializer类

class CmdSerializer
    {
        
        public static string ToMD5(string value)
        {
            if (value == null || value == "")
            {
                return "";
            }
            byte[] data = System.Text.Encoding.Default.GetBytes(value);
            var md = new MD5CryptoServiceProvider();
            var data2 = md.ComputeHash(data);
            var v = BitConverter.ToString(data2);
            v = v.Replace("-", "");
            v = v.ToUpper();
            return v;
        }
    }

Sing类

class Sing
    {
        public object body { get; set; }
        public string cmd { get; set; }
        public string secret { get; set; }
        public int source { get; set; }
        public string ticket { get; set; }
        public string timestamp { get; set; }
        public int version { get; set; }
    }

Ser类

class Ser
    {
        public static string HttpPost(string url, string context)
        {
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
            req.Timeout = 60 * 1000;
            req.ReadWriteTimeout = 60 * 1000;
            //
            byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(context);
            req.Method = "POST";
            Stream requestStream = req.GetRequestStream();
            requestStream.Write(requestBytes, 0, requestBytes.Length);
            requestStream.Close();
            //
            HttpWebResponse res = (HttpWebResponse)req.GetResponse();

Stream stream = res.GetResponseStream();
            StreamReader reader = new StreamReader(stream);
            string str = reader.ReadToEnd();
            stream.Close();
            reader.Close();
            return str;
        }
    }

 
 

百度外卖接口调试 C#版的更多相关文章

  1. js调用百度地图接口

    原文:js调用百度地图接口 这是前几天公司做的新项目,上面需要用到地图的数据.第一次做这类型的东西没啥思路,咱们经理说,这东西简单,截个图存文件夹里调整好尺寸,数据库里存上图片的地址动态调用就行了.心 ...

  2. .net core 和 WPF 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译

    业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...

  3. Winform调用百度地图接口

    using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using ...

  4. 如何实现百度外卖APP个人中心头像"浪"起来的动画效果

    作为一个中午下班不肯离开工作岗位且勤奋工作的骚年来说,叫外卖就成了不可或缺的习惯.某日瞬间发现百度外卖的APP波浪效果很是吸引人.相比较其他的外卖APP,颜值略高些.(淘宝也有波浪的效果),遂就思考如 ...

  5. 用Opera Mobile调试手机版网页【转】

    注意:新版本的opera已经采用webkit内核,没有dragonfly了. 要下载12版的http://get.geo.opera.com/pub/opera/win/1216/int/Opera_ ...

  6. iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/

    http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...

  7. PHP调用百度天气接口API

    //百度天气接口API $location = "北京"; //地区 $ak = "5slgyqGDENN7Sy7pw29IUvrZ"; //秘钥,需要申请,百 ...

  8. Winform调用百度地图接口简单示例

    1.首先用一个html文件调用百度地图接口(主要注册一个序列号):   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  9. 百度天气接口api

    百度天气接口 以GET形式提交,返回JSON或XML URL:http://api.map.baidu.com/telematics/v3/weather?location={城市名}&out ...

随机推荐

  1. 第7月第19天 swift on linux

    1. https://github.com/iachievedit/moreswift http://dev.iachieved.it/iachievedit/more-swift-on-linux/ ...

  2. 使用Cobbler批量部署Linux和Windows:CentOS/Ubuntu批量安装(二)

    通过前面服务端的部署,已经配置好了 Cobbler Server 端,接下来开始进行 CentOS/Ubuntu 的批量安装,在进行 CentOS/Ubuntu 批量安装时,也需要通过Cobbler来 ...

  3. py-faster-rcnn代码阅读3-roidb.py

    roidb是比较复杂的数据结构,存放了数据集的roi信息.原始的roidb来自数据集,在trian.py的get_training_roidb(imdb)函数进行了水平翻转扩充数量,然后prepare ...

  4. keepalived启动不成功,状态一直是inactive(dead) 的解决办法以及keepalived高版本没有rc.d目录,虚拟VIP无法访问问题

    安装配置教程我就不说了,网上很多,这里只给出我遇到的两个坑: 1 rc.d目录 ,kp在1.4版本之后rc.d要去解压之后的源码包里去找,make之后的目录里面没有了,我使用的是2.0.13最新版本, ...

  5. 善用backtrace解决大问题【转】

    转自:https://www.2cto.com/kf/201107/97270.html 一.用途: 主要用于程序异常退出时寻找错误原因 二.功能: 回溯堆栈,简单的说就是可以列出当前函数调用关系 三 ...

  6. Ansible Tower系列 四(使用tower执行一个命令)【转】

    在主机清单页面中,选择一个主机清单,进入后,选择hosts里的主机 Paste_Image.png 点击 RUN COMMANDS MODULE 选择 commandARGUMENTS 填写 ifco ...

  7. 爬虫、框架scrapy

    阅读目录 一 介绍 二 安装 三 命令行工具 四 项目结构以及爬虫应用简介 五 Spiders 六 Selectors 七 Items 八 Item Pipeline 九 Dowloader Midd ...

  8. 解决Python3 pip list 红色DEPRECATION

    解决Python3 pip list 红色DEPRECATION 打开文件扩展名和隐藏的项目 找到ProgramData,在该目录下创建pip文件夹,在pip里面创建pip.ini  在pip.ini ...

  9. CentOS 7命令行安装图形界面(GNOME、KDE等)

    CentOS 7 默认是没有图形化界面的,但我们很多人在习惯了 Windows 的图形化界面之后,总是希望有一个图形化界面从而方便我们使用,这里介绍一下 CentOS7安装图形化桌面系统的方法. 一. ...

  10. tomcat启动不成功(点击startup.bat闪退)的解决办法

    今天遇到tomcat手动启动不成功,但是再eclipse里面是可以启动成功的.我一直开始以为是端口被占用了,最后才发现是这么一回事.首先说下我的tomcat是安装版的.免安装的tomcat双击star ...