百度外卖接口调试 C#版
主类
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#版的更多相关文章
- js调用百度地图接口
原文:js调用百度地图接口 这是前几天公司做的新项目,上面需要用到地图的数据.第一次做这类型的东西没啥思路,咱们经理说,这东西简单,截个图存文件夹里调整好尺寸,数据库里存上图片的地址动态调用就行了.心 ...
- .net core 和 WPF 开发升讯威在线客服系统:调用百度翻译接口实现实时自动翻译
业余时间用 .net core 写了一个在线客服系统.并在博客园写了一个系列的文章,写介绍这个开发过程. 我把这款业余时间写的小系统丢在网上,陆续有人找我要私有化版本,我都给了,毕竟软件业的初衷就是免 ...
- Winform调用百度地图接口
using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using ...
- 如何实现百度外卖APP个人中心头像"浪"起来的动画效果
作为一个中午下班不肯离开工作岗位且勤奋工作的骚年来说,叫外卖就成了不可或缺的习惯.某日瞬间发现百度外卖的APP波浪效果很是吸引人.相比较其他的外卖APP,颜值略高些.(淘宝也有波浪的效果),遂就思考如 ...
- 用Opera Mobile调试手机版网页【转】
注意:新版本的opera已经采用webkit内核,没有dragonfly了. 要下载12版的http://get.geo.opera.com/pub/opera/win/1216/int/Opera_ ...
- iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/
http://zanderzhang.gitcafe.io/2015/09/19/iOS-Andriod百度地图仿百度外卖-饿了么-选择我的地址-POI检索/ 百度外卖选择送货地址: 饿了么选择送货地 ...
- PHP调用百度天气接口API
//百度天气接口API $location = "北京"; //地区 $ak = "5slgyqGDENN7Sy7pw29IUvrZ"; //秘钥,需要申请,百 ...
- Winform调用百度地图接口简单示例
1.首先用一个html文件调用百度地图接口(主要注册一个序列号): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- 百度天气接口api
百度天气接口 以GET形式提交,返回JSON或XML URL:http://api.map.baidu.com/telematics/v3/weather?location={城市名}&out ...
随机推荐
- requests下载文件并重新上传
import re import requests from io import BytesIO from django.core.files.uploadedfile import InMemory ...
- 20165320 2017-2018-2《Java程序设计》课程总结
20165320 2017-2017-2<Java程序设计>课程总结 一.每周作业链接汇总 1.我期待的师生关系 20165320 我期望的师生关系 2.学习基础和C语言基础调查 2016 ...
- 【Udacity并行计算课程笔记】- lesson 1 The GPU Programming Model
一.传统的提高计算速度的方法 faster clocks (设置更快的时钟) more work over per clock cycle(每个时钟周期做更多的工作) more processors( ...
- IE下常见兼容性问题总结
概述 本小菜平时主要写后台程序,偶尔也会去写点前端页面,写html.css.js的时候,会同时开着ie6.ie7.ie8.ie9.chrome.firefox等浏览器进行页面测试,和大部分前端开发一样 ...
- Binary Representation
Given a (decimal - e.g. 3.72) number that is passed in as a string, return the binary representation ...
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- 局域网搭建https局域网
局域网搭建https局域网 1.使用tomcat作为服务器搭建局域网访问https 需要使用java jdk\bin下的keytool.exe来创建证书 使用命令:keytool -genkenpai ...
- Linux 生产实习01
Linux 生产实习01 标签(空格分隔): Linux 2018.07.02 相关软件下载地址:Linux Study 0x01. 安装 VMware Workstation VMware Work ...
- [转] 对vuex的表象理解(笔记)
一个东西,首先要知道为什么用它,为什么要vuex,官方解释为了解决繁杂事件订阅和广播,那么事件的$dispatch,$on,怎么就复杂了?许多人是不是感觉后者还挺简单的,对的 如果简单小型项目,那么不 ...
- Serilog 记录日志
Serilog 记录日志 Serilog是.net里面非常不错的记录日志的库,另外一个我认为比较好的Log库是NLog. 在我个人的asp.net web api 2 基础框架(Github地址)里, ...