车辆未成年工登记证 样本最后一页样本

米阳基础平台(以下简称为MeFP)接口使用HTTP协议,落地方为发起方提供访问的URL,发起方发送请求报文并得到应答报文,发起方作为落地方的HTTP客户端,落地方作为发起方的HTTP服务器。因此,各个参与方需要同时实现HTTP客户端以及服务器的功能。
发起方请求的IP地址必须绑定,不允许从任意IP地址发起请求。
建议请求超时时间设置为30秒以上。
建议使用异步请求,以减轻双方服务器压力。
接口提供外部请求和访问的URL如下:
稳定版,提供长期使用,应用数据关联到
开发版,提供上线前测试及新功能试用,应用数据关联到
(注:测试环境仅支持联通号段的定位功能测试)
method为本次请求的方法名称,key为MeFP统一分配给应用的公钥,parameters为本次请求所对应方法的实际参数值,sign为本次请求的签名数据。以JSON数据格式返回结果。
(注:为确保请求内容正确传输,需要进行URL Encoding操作)
parameters的生成规则为base64(ts=&key1=values1&key2=values2...)
ts为yyyy-mm-dd hh:mm:ss格式的时间戳(请求有效时间为五分钟),K/V
代表参数项(具体参见接口功能部分的相应说明)
(注:参数值使用UTF-8编码)
sign的生成规则为base64(md5(key+parameters+secret))
secret为MeFP统一分配给应用的私钥
(注:加号代表字符串连接操作,不需要包含在签名中)
(注:MD5结果取值为32位长度字节数组,全部为小写字母)
请求成功时返回数据如下:
单个结果集:
{"success":"true", "result":{"key1":"value1", "key2":"value2", ...}}
多个结果集:
{"success":"true", "result":[{"key1":"value1", ...}, {"key1":"value1", ...}]}
请求失败时返回数据如下:
{"success":"false", "error":{"code":"", "message":""}}
访问验证用于自有产品及用户群体的应用
登录验证用于针对联联看功能进行二次封装的应用
然后调用其他接口进行相关业务操作
举例如下:
获得任意验证类型的token(如果近期已获取过token则跳过此步)
获得注册验证码
获得任意验证类型的token(如果近期已获取过token则跳过此步)
访问 ,登录验证方式时配合参数 url_for 跳转到指定功能页面,访问验证方式时固定跳转到登录页面
获得任意验证类型的token(如果近期已获取过token则跳过此步)
登记车辆信息
开通车辆随车电话的定位功能
定位车辆位置
还可以调用
获取车辆列表、调用
修改车辆信息、调用
删除车辆信息
获得任意验证类型的token(如果近期已获取过token则跳过此步)
登记货物信息
设置货物为启运状态(如果承运车辆为初次使用,需要调用
先进行登记操作)
定位货物位置(如果使用手机定位需要确保承运车辆的随车电话已经开通定位功能,或者调用
使用回单夹进行货物全程跟踪)
平台使用权限
如果请求返回错误代码110,则说明对应用户需要充值或升级为高级会员才能继续正常使用,可以访问
,进行账户充值或购买套餐操作
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
车辆类型,拖挂轮轴,使用MeFP自定义代码
车辆类型,箱体结构,使用MeFP自定义代码
driver_name
司机姓名,小于20个字符
locate_number
随车电话,用于开通定位
expected_flow
期望流向,使用,不含省及区数据(),以逗号分隔,为空时代表全国,可选
driver_gender
司机性别,男或女,可选
driver_id_number
司机身份证号码,可选
车辆类型,特殊功能,使用MeFP自定义代码,可选
车辆类型,厂商品牌,使用MeFP自定义代码,可选
容积,可选
车宽,可选
车高,可选
description
描述,可选
need_privatize
车辆私有化,布尔值,可选,需要事先提交审核材料,私有化车俩不享受免费定位位置推送及积分返利
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
随车电话,用于开通定位
无效车型代码
无效区划代码
无效车辆数据(返回数据中的validates包含了详细的参数验证错误信息)
无法设置为私有化车辆
半挂一拖二
半挂一拖三
半挂二拖二
半挂二拖三
前四后四半挂
东风日产(柴)
江淮格尔发
福建新龙马
罐体专用车
金华青年曼
CM1_20 全挂
瑞典沃尔沃
瑞典斯堪尼亚
日本五十铃
验证车牌号码
/car/plate_number/verify
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
is_available
车牌号码是否可用,返回true,车牌尚未使用,可以新增车辆; 返回 false车牌已使用,无法新增车辆
locate_number
随车电话,车牌号码已存在的情况下返回随车号码,不存在返回空串
开通车辆定位
/car/open_locate
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
callback_url
回调地址,以http://开头,用于即时获取开通状态,可选
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
申请开通定位的手机号码
request_times
本日剩余请求次数,已开通时始终为0
无效车辆数据
获取定位开通状态
/car/get_locate_status
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
申请开通定位的手机号码
locate_status
定位开通状态,已开通时1,未开通时为0
无效车辆数据
推送定位开通状态
回调请求,仅当用户确认开通定位并在开通车辆定位请求参数中提供callback_url时,以HTTP GET方法返回明文数据
lbs_open_status_notify
phone_number
申请开通定位的手机号码
/car/locate
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
被定位的手机号码
account_balance
无效车辆数据
没有可用的定位方式
推送免费定位位置
回调请求,仅当每天免费定位成功并在开通车辆定位请求参数中提供callback_url时,以HTTP GET方法返回明文数据
lbs_free_locate_notify
phone_number
被定位的手机号码
返回结果中,当前位置在登录地区且最近使用/修改的车辆排在前面
register_contact_number
登记公司手机号码,用于匹配MeLink用户
搜索关键字,可以模糊匹配车牌号码、随车电话、司机姓名和备注
页码,默认返回第一页,无效页码时返回最后一页
每页条数,每页最多返回99条,默认返回20条
register_contact_number
登记公司手机号码,用于匹配MeLink用户
total_results
车辆列表,JSON格式数组
plate_number
locate_status
车辆定位开通状态,布尔值
located_time
车辆类型,拖挂轮轴,使用MeFP自定义代码
车辆类型,箱体结构,使用MeFP自定义代码
driver_name
locate_number
expected_flow
期望流向,中文城市名称,以逗号分隔,为空时代表全国
driver_gender
driver_id_number
司机身份证号码
车辆类型,特殊功能,使用MeFP自定义代码
车辆类型,厂商品牌,使用MeFP自定义代码
description
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
车辆类型,拖挂轮轴,使用MeFP自定义代码
车辆类型,箱体结构,使用MeFP自定义代码
driver_name
司机姓名,小于20个字符
locate_number
随车电话,用于开通定位
expected_flow
期望流向,使用,不含省及区数据(),以逗号分隔,为空时代表全国,可选
driver_gender
司机性别,男或女,可选
driver_id_number
司机身份证号码,可选
车辆类型,特殊功能,使用MeFP自定义代码,可选
车辆类型,厂商品牌,使用MeFP自定义代码,可选
容积,可选
车宽,可选
车高,可选
description
描述,可选
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
随车电话,用于开通定位
无效车型代码
无效区划代码
无效车辆数据(返回数据中的validates包含了详细的参数验证错误信息)
/car/delete
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
无效车辆数据
/car/add_driver
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
driver_name
司机姓名,小于20个字符
locate_number
随车电话,用于开通定位
driver_gender
司机性别,男或女,可选
driver_id_number
司机身份证号码,可选
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
随车电话,用于开通定位
无效车辆数据
/car/choose_driver
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
随车电话,用于开通定位
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
随车电话,用于开通定位
无效车辆数据
无效司机数据
/car/list_driver
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
plate_number
车牌号码,格式为浙A12345
locate_number
total_results
driver_lists
司机列表,JSON格式数组
driver_name
locate_number
driver_gender
driver_id_number
司机身份证号码
无效车辆数据
/cargo/add
register_contact_number
登记公司手机号码,用于匹配MeLink用户
short_title
货物简称,小于50个字符
始发地,使用,不含省及区数据()
destination
目的地,使用,不含省及区数据()
重量,可选
体积,可选
运费,可选
delivery_name
发货公司,小于100个字符,可选
delivery_contact_number
发货公司手机号码,用于匹配MeLink用户,可选
delivery_contact_person
发货公司联系人,小于20个字符,可选
loading_place
装货地点,小于100个字符,可选
take_delivery_name
收货公司,小于100个字符,可选
take_delivery_contact_number
收货公司手机号码,用于匹配MeLink用户,可选
take_delivery_contact_person
收货公司联系人,小于20个字符,可选
unloading_place
卸货地点,小于100个字符,可选
carrier_name
承运公司,小于100个字符,可选
carrier_contact_number
承运公司手机号码,用于匹配MeLink用户,可选
carrier_contact_person
承运公司联系人,小于20个字符,可选
callback_url
回调地址,以http://开头,用于即时获取货物状态,可选
register_contact_number
登记公司手机号码,用于匹配MeLink用户
short_title
货物简称,小于50个字符
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
无效区划代码
无效货物数据(返回数据中的validates包含了详细的参数验证错误信息)
/cargo/shipment
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
plate_number
车牌号码,格式为浙A12345
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
plate_number
车牌号码,格式为浙A12345
无效车辆数据
无效货物数据
货物未承运
货物已收货
绑定回单夹
/cargo/bind_device
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
device_code
回单夹编码,格式为0111001
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
device_code
回单夹编码,格式为0111001
account_balance
无效货物数据
无效回单夹
货物未启运
货物已收货
已绑定相同回单夹
/cargo/locate
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
account_balance
没有可用的定位方式
无效货物数据
货物未启运
货物已收货
推送货物状态
回调请求,仅当货物状态发生变更并在新增货物请求参数中提供callback_url时,以HTTP GET方法返回明文数据
cargo_status_notify
register_contact_number
登记公司手机号码,用于匹配MeLink用户
waybill_code
运单编码,由MeLink生成的20位唯一编码,用于定位等后续操作
根据验证方式跳转到指定页面
跳转页面,使用MeFP自定义代码,可选,默认为用户首页,仅在登录验证方式时有效,访问验证方式时固定跳转到登录页面
plate_number
车牌号码,格式为浙A12345,可选,仅在登录验证方式时有效
password_change
contact_manage
account_pay
account_consume_logs
cars_orbit_view
车辆轨迹,车牌号码参数必须
services_verify
证件核查,提供车牌号码参数时自动关联对应车辆的司机身份信息
cars_filter
cars_filter_public
访问/登录验证
获取授权令牌或验证登录账号有效性
/user/verify
verify_for
验证方式,access代表访问验证,user代表登录验证
login_name
登录账号,可以是昵称或手机号码,可选,仅在登录验证时有效
登录密码,明文,可选,仅在登录验证时有效
register_contact_number
注册公司手机号码,用于匹配MeLink用户,仅在登录验证时有效
company_name
公司名称,仅在登录验证时有效
account_balance
账户余额,仅在登录验证时有效
登录账号或密码错误
登录失败,登录帐号需要激活
自动向注册用户下行验证码短信
/user/captcha
register_contact_number
注册公司手机号码,用于匹配MeLink用户
register_contact_number
注册公司手机号码,用于匹配MeLink用户
注册验证码发送失败
手机号码已被注册
注册失败,登录帐号需要激活
注册登录账号
/user/register
登录密码,明文
contact_number
注册验证码
register_contact_number
注册公司手机号码,用于匹配MeLink用户
account_balance
无效注册数据(返回数据中的validates包含了详细的参数验证错误信息)
注册验证码错误
注册失败,登录帐号需要激活
由应用账户向用户账户转账充值
/user/account_recharge
register_contact_number
待充值公司手机号码,用于匹配MeLink用户
recharge_amount
充值金额,浮点类型(8,2)
register_contact_number
待充值公司手机号码,用于匹配MeLink用户
recharge_amount
充值金额,浮点类型(8,2)
account_balance
待充值公司账户余额
非法请求地址
缺少参数或参数无效
无效回调地址
接口内部错误
无效方法名称
余额不足或无
token无效或过期
暂时无法开通定位
暂时无法定位
未开通定位
暂时无法取消定位
已开通定位
已达本日请求上限
等待开通定位
无效设备类型
号码已停机
号码已关机
开通定位请求正在处理中
开通定位请求过于频繁
无效车型代码
无效区划代码
无效车辆数据
没有可用的定位方式
无效货物数据
无效回单夹
货物未承运
货物未启运
货物已启运
货物已收货
已绑定相同回单夹
登录账号或密码错误
注册验证码发送失败
无效注册数据
注册验证码错误
手机号码已被注册
开通高级会员失败
无法设置为私有化车辆
注册失败,登录帐号需要激活
登录失败,登录帐号需要激活
无效司机数据
Q:为什么会返回无效签名错误?
A:生成签名方式不对,请检查MD5操作的取值结果为长度32位的字节数组,并全部为小写字母,而base64操作是需要区分大小写字母的。
Q:为什么会返回无效请求错误?
A:时间戳参数无效,请检查本机系统时间是否正确,并确保请求发起时间与标准北京时间之间相差不超过5分钟。
Q:为什么会提示缺少参数或参数无效错误?
A:遗漏必要参数或参数存在错误,请仔细核对调用接口的必要参数是否全部包含,参数名称是否正确,是否存在多余空格或其他字符,如果没有使用开发语言内置的URLEncoding功能,则注意只需要对参数值进行转义操作,并替换空格、冒号等特殊字符(通过查看正确的转义结果)。
Q:为什么会返回无效方法名称?
A:错误的方法名称,或使用了错误的请求方式,请检查方法名称和请求方式(GET或POST)是否与文档要求一致。
Q:为什么会提示非法用户?
A:没有通过接口注册用户,直接在联联看网页上注册的用户不包含归属信息,所以无法直接使用接口功能,如果上线后出现这样的情况,可以联系客服并提交相关证明材料来修改用户归属。
Q:为什么提示用户需要激活?
A:用户已经在其他应用注册,由于用户信息要求不同,所以在使用联联看时需要通过激活操作()完善信息后才能继续使用。
Q:为什么会提示车辆/货物数据无效?
A:车辆/货物数据没有通过接口验证,请通过返回结果中的validates值获取详细的验证错误。
Q:为什么我的数据不见了?
A:测试环境和生产环境的数据是完全隔离的,不能互通,一般集成流程是先在测试环境进行接口测试,通过后再切换到生产环境,期间的测试数据不做迁移。
Q:为什么充值操作不成功?
A:充值操作是由合作方向其所属用户进行的转账操作,请和客服确认是否已经把请求账号升级为合作方,正式上线时也请注意先检查请求账号的属性是否正确。
Q:哪里可以看到我的用户列表?
A:登录,可以查看到所属用户列表、返利和增值服务使用情况。
Q:为什么我的用户在联联看上看不到自己的车辆数据?
A:如果直接调用新增车辆接口,这时候生成的用户信息是锁定的,所以为确保终端用户的正常使用,请先调用帐号注册接口。
#!/usr/bin/env python
#coding=utf-8
import urllib, urllib2
import base64
import hashlib
import tornado.httpclient
from tornado.httputil import HTTPHeaders
from datetime import datetime
key = 'your_key'
secret = 'your_secret'
def get_data(params):
parameters = base64.b64encode(urllib.urlencode(params))
sign = base64.b64encode(hashlib.md5(key+parameters+secret).hexdigest())
data = dict(sign=sign, parameters=parameters, key=key)
return data
def get_token():
Authorization ='Basic ' + base64.b64encode('%s:%s' % (username, password))
headers = HTTPHeaders({'Authorization': Authorization})
request = tornado.httpclient.HTTPRequest(url, method="GET", headers=headers)
http = tornado.httpclient.HTTPClient()
response = http.fetch(request)
data = tornado.escape.json_decode(response.body)
return data['token']
def test_cargo_add():
token = get_token();
if not token:
print '授权失败'
params = {'token': token,
'short_title': '货物名称',
'origin': '始发地行政区划代码',
'destination': '目的地行政区划代码',
'delivery_contact_number': '发货方电话',
'delivery_contact_person': '发货方联系人',
'register_contact_number': '登记方电话',
'ts': datetime.now().strftime('%Y-%m-%d %X')}
data = get_data(params)
url = 'http://dev./cargo/add'
params = urllib.urlencode(data)
source = urllib2.urlopen(url, params).read()
return source
if __name__ == '__main__':
test_cargo_add()
$key = 'your_key';
$secret = 'your_secret';
function urlencode_array($params){
global $key;
$data = array();
foreach (array_keys($params) as $k){
$data[]=$k.'='.urlencode(strval($params[$k]));
return join('&',$data);
function get_data($params)
global $key,$secret;
$parameters = base64_encode(urlencode_array($params));
$sign = base64_encode(md5($key.$parameters.$secret));
$data = array('sign'=& $sign, 'parameters'=&$parameters, 'key'=&$key);
return $data;
function get_token(){
$username = '用户名';
$password = '密码';
$url = '/api/token';
$auth = 'Basic '.base64_encode($username.$password);
header('Authorization:'.$auth);
$source = file_get_contents($url.'?'.$params);
$token = json_decode($source)-&token;
return $token;
function test_interface_cargoadd(){
$token = get_token();
$params = array('token' =& $token,
'short_title' =& '货物名称',
'origin'=& '始发地行政区划代码',
'destination'=& '目的地行政区划代码',
'delivery_contact_number'=& '发货方电话',
'delivery_contact_person'=& '发货方联系人',
'register_contact_number': '登记方电话',
'ts'=& date("Y-m-d H:i:s"));
$data = get_data($params);
$url = 'http://dev./cargo/add';
$params = urlencode_array($data);
$source = file_get_contents($url.'?'.$params);
return $source;
package org.meyoung.example;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import mons.codec.binary.Base64;
import mons.codec.digest.DigestUtils;
import org.jsoup.Jsoup;
public class ExampleData {
private static String key = "your_key";
private static String secret = "your_secret";
public static void main(String[] args) throws Exception {
ExampleData d = new ExampleData();
Map&String, String& params = new HashMap&String, String&();
params.put("name", "meyoung");
d.test_cargo_add();
public String urlencode(Map&String, String& params) throws UnsupportedEncodingException {
Iterator&String& iter = params.keySet().iterator();
int i = 0;
StringBuffer sb = new StringBuffer();
while (iter.hasNext()) {
String key = iter.next();
String value = params.get(key);
if (i != 0) {
sb.append("&");
sb.append(key);
sb.append("=");
sb.append(URLEncoder.encode(value, "utf-8").toString());
return sb.toString();
public Map&String, String& getData(Map&String, String& params) throws UnsupportedEncodingException {
Map&String, String& result = new HashMap&String, String&();
String parameters = Base64.encodeBase64String(urlencode(params).getBytes());
String sign = Base64.encodeBase64String(DigestUtils.md5Hex(key + parameters + secret).getBytes());
result.put("key", key);
result.put("sign", sign);
result.put("parameters", parameters);
return result;
public void test_cargo_add() throws Exception {
Map&String, String& params = new HashMap&String, String&();
params.put("token", "授权令牌");
params.put("short_title", "货物名称");
params.put("origin", "始发地行政区划代码");
params.put("destination", "目的地行政区划代码");
params.put("delivery_contact_number", "发货方电话");
params.put("delivery_contact_person", "发货方联系人");
params.put("register_contact_number", "登记方电话");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
params.put("ts", format.format(new Date()));
Map&String, String& data = getData(params);
String param = urlencode(data);
System.out.println(param);
Jsoup.connect("http://dev./cargo/add?" + param);
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Text;
using System.Web;
namespace MeYoung.Example
class ExampleData
private static String key = "your_key";
private static String secret = "your_secret";
static void Main(string[] args)
ExampleData d = new ExampleData();
d.test_cargo_add();
System.Console.Read();
public string TransformURL(Dictionary&string, string& parameters)
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair&string, string& parameter in parameters)
string v = HttpUtility.UrlEncode(parameter.Value, Encoding.UTF8);
sb.AppendFormat("{0}={1}", parameter.Key, v).Append("&");
if (sb.Length & 1)
sb.Remove(sb.Length - 1, 1);
return sb.ToString();
public Dictionary&string, string& TransformData(Dictionary&string, string& parameters)
Dictionary&string, string& result = new Dictionary&string, string&();
string base64Parameters = Convert.ToBase64String(Encoding.UTF8.GetBytes(TransformURL(parameters)));
string sign = EncryptHelper.MD5Encode(key + base64Parameters + secret);
string base64Sign = Convert.ToBase64String(Encoding.UTF8.GetBytes(sign));
result.Add("key", key);
result.Add("sign", base64Sign);
result.Add("parameters", base64Parameters);
return result;
public void test_cargo_add()
Dictionary&string, string& parameters = new Dictionary&string, string&();
parameters.Add("token", "授权令牌");
parameters.Add("short_title", "货物名称");
parameters.Add("origin", "始发地行政区划代码");
parameters.Add("destination", "目的地行政区划代码");
parameters.Add("delivery_contact_number", "发货方电话");
parameters.Add("delivery_contact_person", "发货方联系人");
parameters.Add("register_contact_number", "登记方电话");
parameters.Add("ts", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
Dictionary&string, string& data = TransformData(parameters);
String param = TransformURL(data);
System.Console.WriteLine(param);
HttpWebRequest request = (System.Net.HttpWebRequest)WebRequest.Create("http://dev./cargo/add?" + param);
request.Method = "post";
HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.Stream s = response.GetResponseStream();
string content = string.Empty;
using (TextReader reader = new StreamReader(s))
content = reader.ReadToEnd();
System.Console.WriteLine(content);
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
namespace MeYoung.Example
/// &summary&
/// EncryptHelper
/// &/summary&
public class EncryptHelper
/// &summary&
/// 默认密钥向量
/// &/summary&
private static byte[] keys = { 18, 52, 86, 120, 144, 171, 205, 239 };
/// &summary&
/// DES加密字符串
/// &/summary&
/// &param name="encryptString"&待加密的字符串&/param&
/// &param name="encryptKey"&加密密钥,要求为8位&/param&
/// &returns&加密成功返回加密后的字符串,失败返回源串&/returns&
public static string EncryptDES(string encryptString, string encryptKey)
encryptKey = encryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dcsp = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dcsp.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
cryptoStream.FlushFinalBlock();
return Convert.ToBase64String(memoryStream.ToArray());
return encryptString;
/// &summary&
/// DES加密字符串
/// &/summary&
/// &param name="encryptString"&待加密的字符串&/param&
/// &param name="key"&加密密钥&/param&
/// &returns&加密后的字符串&/returns&
public static string Encrypt(string encryptString, string key)
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(encryptString); ////把字符串放到byte数组中
des.Key = ASCIIEncoding.ASCII.GetBytes(key);
////建立加密对象的密钥和偏移量
des.IV = ASCIIEncoding.ASCII.GetBytes(key);
////原文使用ASCIIEncoding.ASCII方法的GetBytes方法
MemoryStream ms = new MemoryStream();
////使得输入密码必须输入英文文本
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
ret.AppendFormat("{0:X2}", b);
return ret.ToString();
/// &summary&
/// DES解密字符串
/// &/summary&
/// &param name="decryptString"&待解密的字符串&/param&
/// &param name="decryptKey"&解密密钥,要求为8位,和加密密钥相同&/param&
/// &returns&解密成功返回解密后的字符串,失败返源串&/returns&
public static string DecryptDES(string decryptString, string decryptKey)
decryptKey = decryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider dcsp = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dcsp.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
cryptoStream.FlushFinalBlock();
return Encoding.UTF8.GetString(memoryStream.ToArray());
return decryptString;
/// &summary&
/// MD5加密,和动网上的16/32位MD5加密结果相同
/// &/summary&
/// &param name="strSource"&待加密字串&/param&
/// &returns&加密后的字串&/returns&
public static string MD5Encode(string strSource)
return MD5Encode(strSource, 0);
/// &summary&
/// MD5加密,和动网上的16/32位MD5加密结果相同
/// &/summary&
/// &param name="strSource"&待加密字串&/param&
/// &param name="length"&16或32值之一,其它则采用.net默认MD5加密算法&/param&
/// &returns&加密后的字串&/returns&
public static string MD5Encode(string strSource, int length)
byte[] bytes = Encoding.UTF8.GetBytes(strSource);
byte[] hashValue = ((System.Security.Cryptography.HashAlgorithm)System.Security.Cryptography.CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes);
StringBuilder sb = new StringBuilder();
switch (length)
for (int i = 4; i & 12; i++)
sb.Append(hashValue[i].ToString("x2"));
for (int i = 0; i & 16; i++)
sb.Append(hashValue[i].ToString("x2"));
for (int i = 0; i & hashValue.Length; i++)
sb.Append(hashValue[i].ToString("x2"));
return sb.ToString();
Last modified on Aug 30, :19 PM
Attachments (1)
(101.5 KB) -
added by Motorcure .
最新县及县以上行政区划代码(截止日)
Download all attachments as:
Download in other formats:

我要回帖

更多关于 就业失业登记证样本 的文章

 

随机推荐