基于C# .NET的常用快递接口调用代码实例
#region json返回实例 // { // "resultcode": "200", /* 老版状态码,新用户请忽略此字段 */ // "reason": "查询物流信息成功", // "company": "申通", /* 快递公司名字 */ // "result": { // "com": "sto", // "status": "1", /* 1表示此快递单的物流信息不会发生变化,此时您可缓存下来;0表示有变化的可能性 */ // "no": "335013057****", /* 快递单号 */ // "list": [ // { // "remark": "离开郴州市 发往长沙市【郴州市】", /* 物流事件的描述 */ // "datetime": "2016-06-15 21:44:04", /* 物流事件发生的时间 */ // "zone": "" /* 快件当时所在区域,由于快递公司升级,现大多数快递不提供此信息 */ // }, // } // { // "datetime": "2016-06-20 17:55:00", // "remark": "投递并签收,签收人:单位收发章 *【毕节地区】", // "zone": "" // ] // }, // "error_code": 0 /* 错误码,0表示查询正常,其他表示查询不到物流信息或发生了其他错误 */ //} #endregion
// 在线接口文档:http://www.juhe.cn/docs/43
// 代码中JsonObject类下载地址:http://download.csdn.net/download/gcm3206021155665/7458439
/// <summary>
///返回json格式的字符串 物流信息
/// </summary>
/// <param name="ordernumber"></param>
/// <returns></returns>
public static string deliveryInfos(string ordernumber)
{
//常用快递查询API
string url1 = "http://v.juhe.cn/exp/index";
var parameters1 = new Dictionary<string, string>();
parameters1.Add("com", "sto"); //需要查询的快递公司编号
parameters1.Add("no", "335013057****"); //需要查询的订单号
parameters1.Add("key", "********************");//配置您申请的appkey
parameters1.Add("dtype", "json"); //返回数据的格式,xml或json,默认json
string result1 = sendPost(url1, parameters1, "get");//你所要得到的物流信息,格式为json字符串
JsonObject newObj1 = new JsonObject(result1);//字符串转换为json对象
string errorCode1 = newObj1["error_code"].Value;//错误码,0表示查询正常,其他表示查询不到物流信息或发生了其他错误
if (errorCode1 == "0")
{
string status = newObj1["result"]["status"].Value;//1表示此快递单的物流信息不会发生变化,此时您可以存储下来,不用再调用接口(省钱,有钱任性的话可以不存);0表示有变化的可能性
if (status=="1")
{
//对status 进行存储操作,或者可以将返回的json字符串数据存储下来
}
}
#region start说明:这一整块(到下面的end说明)可以直接用,不用修改
/// <summary>
/// Http (GET/POST)
/// </summary>
/// <param name="url">请求URL</param>
/// <param name="parameters">请求参数</param>
/// <param name="method">请求方法</param>
/// <returns>响应内容</returns>
static string sendPost(string url, IDictionary<string, string> parameters, string method)
{
if (method.ToLower() == "post")
{
HttpWebRequest req = null;
HttpWebResponse rsp = null;
System.IO.Stream reqStream = null;
try
{
req = (HttpWebRequest)WebRequest.Create(url);
req.Method = method;
req.KeepAlive = false;
req.ProtocolVersion = HttpVersion.Version10;
req.Timeout = 5000;
req.ContentType = "application/x-www-form-urlencoded;charset=utf-8";
byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters, "utf8"));
reqStream = req.GetRequestStream();
reqStream.Write(postData, 0, postData.Length);
rsp = (HttpWebResponse)req.GetResponse();
剩余6页未读,继续阅读
- 粉丝: 28
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
- (源码)基于Java和MySQL的学生信息管理系统.zip
- (源码)基于ASP.NET Core的零售供应链管理系统.zip