C#通过发送 http 请求调用接口之Get

1.实现车辆信息查询接口
(1)描述
本接口提供指定车牌号,车牌颜色的车辆信息查询。
(2)接口调用示例:
待加密格式
type=xxx&user=...
(3)请求地址格式
http://****/vinfos?p=加密后数据

(4)实现:

a)aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GoodsVehicle2.aspx.cs" Inherits="GoodsVehicleTest.GoodsVehicle2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Js/jquery-1.9.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button runat="server" ID="btnSearch" Text="查询" Width="200px" /> 
    </div>
    <div>
        <table  border="1px" cellspacing="0" cellpadding="0">
            <tr>
                <td>终端 ID </td>
                <td><asp:Label runat="server" ID="lbltmc"></asp:Label></td>
            </tr>
            <tr>
                <td>SIM 卡卡号 </td>
                <td><asp:Label runat="server" ID="lblcmdr"></asp:Label></td>
            </tr>
            <tr>
                <td>所属省市县</td>
                <td>
                    <asp:Label runat="server" ID="lblrCdNm"></asp:Label>
                    <asp:Label runat="server" ID="lblctyNm"></asp:Label>
                    <asp:Label runat="server" ID="lblcntyNm"></asp:Label>
                </td> 
            </tr>
            <tr>
                <td>车主/业户</td>
                <td><asp:Label runat="server" ID="lblcmpNm"></asp:Label></td>
            </tr>
            <tr>
                <td>联系人</td>
                <td><asp:Label runat="server" ID="lblvclWnrNm"></asp:Label></td>
            </tr>
            <tr>
                <td>联系人手机</td>
                <td><asp:Label runat="server" ID="lblvclWnrPhn"></asp:Label></td>
            </tr>
            <tr>
                <td>车辆识别代码/车架号</td>
                <td><asp:Label runat="server" ID="lblvin"></asp:Label></td>
            </tr>
            <tr>
                <td>车牌号</td>
                <td>
                    <asp:Label runat="server" ID="lblvclN"></asp:Label>
                    <asp:Label runat="server" ID="lblpltClr"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>车辆类型  </td>
                <td><asp:Label runat="server" ID="lblvclTpNm"></asp:Label></td>
            </tr>
            <tr>
                <td>车辆品牌</td>
                <td><asp:Label runat="server" ID="lblvbrndCdNm"></asp:Label></td>
            </tr>
            <tr>
                <td>车辆型号</td>
                <td><asp:Label runat="server" ID="lblprdCdNm"></asp:Label></td>
            </tr>
            <tr>
                <td>总质量(kg)</td>
                <td><asp:Label runat="server" ID="lblvclTn"></asp:Label></td>
            </tr>
            <tr>
                <td>核定载质量(kg)</td>
                <td><asp:Label runat="server" ID="lblldTn"></asp:Label></td>
            </tr>
            <tr>
                <td>准牵引总质量(kg)</td>
                <td><asp:Label runat="server" ID="lblvclDrwTn"></asp:Label></td>
            </tr>
            <tr>
                <td>外廓尺寸(mm)</td>
                <td>
                    <asp:Label runat="server" ID="lblvclSize"></asp:Label> 
                </td>
            </tr>
            <tr>
                <td>货厢内部尺寸(mm)</td>
                <td>
                    <asp:Label runat="server" ID="lblboxSize"></asp:Label> 
                </td>
            </tr>
            <tr>
                <td>轴数</td>
                <td><asp:Label runat="server" ID="lblvclAxs"></asp:Label></td>
            </tr>
            <tr>
                <td>审核人名称</td>
                <td><asp:Label runat="server" ID="lbladtrNm"></asp:Label></td>
            </tr>
            <tr>
                <td>审核时间</td>
                <td><asp:Label runat="server" ID="lbladtTm"></asp:Label></td>
            </tr>
            <tr>
                <td>有效期时间 </td>
                <td><asp:Label runat="server" ID="lblvdtTm"></asp:Label></td>
            </tr>
            <tr>
                <td>车主手机号验证状态 </td>
                <td><asp:Label runat="server" ID="lblvrfySt"></asp:Label></td>
            </tr>
        </table>
    </div>
    <div>
        <asp:Label runat="server" ID="lblError"></asp:Label>
    </div>
    </form>
</body>
</html>
b)aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Serialization;
using System.Net;
using System.IO;
using Encrypt;

namespace GoodsVehicleTest
{
    public partial class GoodsVehicle2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            btnSearch.Click += new EventHandler(btnSearch_Click);
        } 

        void btnSearch_Click(object sender, EventArgs e)
        { 
            //设置参数并加密
            string dtNow = ConvertDateTimeInt(DateTime.Now); //转化为时间戳
            string str = "type=xxx&user=xxx&T=" + dtNow;//设置传输参数
            string strEn=Encrypt.Security.EnCode(str);//加密

            System.Net.WebClient client = new System.Net.WebClient();
            string reply = client.DownloadString("http://xxx/vinfos?p=" + strEn); //http地址并返回结果
            string DeReply = Encrypt.Security.DeCode(reply);//解密

            //处理返回值
            string jsona = @DeReply;//这里的@是不要转义的意思
            JavaScriptSerializer jscvt = new JavaScriptSerializer(); 
            QueryVehicleReq objQuery = jscvt.Deserialize<QueryVehicleReq>(jsona); //将jsona字符串转变成指定类型对象
            //判断结果
            switch (objQuery.status)
            {
                case 1: break;
                case 2: ShowErrorMessage("用户认证失败"); return;
                case 3: ShowErrorMessage("系统异常"); return;
                case 4: ShowErrorMessage("没有查询到数据"); return;
                case 5: ShowErrorMessage("查询字段不能为空"); return;
                case 6: ShowErrorMessage("查询超过次数限制"); return;
                case 7: ShowErrorMessage("其它"); return;
                case 8: ShowErrorMessage("非法请求"); return;  
            }
            //显示数据
            if (objQuery.status==1)
            {
                lbltmc.Text = objQuery.List[0].tmc;
                lblcmdr.Text = objQuery.List[0].cmdr;
                lblrCdNm.Text = objQuery.List[0].rCdNm;
                lblctyNm.Text = objQuery.List[0].ctyNm;
                lblcntyNm.Text = objQuery.List[0].cntyNm;
                lblcmpNm.Text = objQuery.List[0].cmpNm;
                lblvclWnrNm.Text = objQuery.List[0].vclWnrNm;
                lblvclWnrPhn.Text = objQuery.List[0].vclWnrPhn;
                lblvin.Text = objQuery.List[0].vin;
                lblvclN.Text = objQuery.List[0].vclN;
                lblpltClr.Text = GetPlateColor(objQuery.List[0].pltClr);
                lblvclTpNm.Text = objQuery.List[0].vclTpNm;
                lblvbrndCdNm.Text = objQuery.List[0].vbrndCdNm;
                lblprdCdNm.Text = objQuery.List[0].prdCdNm;
                lblvclTn.Text = objQuery.List[0].vclTn;
                lblldTn.Text = objQuery.List[0].ldTn;
                lblvclDrwTn.Text = objQuery.List[0].vclDrwTn;
                lblvclSize.Text = objQuery.List[0].vclSize; 
                lblboxSize.Text = objQuery.List[0].boxSize; 
                lblvclAxs.Text = objQuery.List[0].vclAxs.ToString();
                lbladtrNm.Text = objQuery.List[0].adtrNm.ToString();
                lbladtTm.Text = objQuery.List[0].adtTm;
                lblvdtTm.Text = objQuery.List[0].vdtTm;
                lblvrfySt.Text = objQuery.List[0].vrfySt; 
            } 
        }

        /// <summary>
        /// 获取车牌颜色
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        public static string GetPlateColor(string type)
        {
            switch (type)
            {
                case "1":
                    return "蓝";
                case "2":
                    return "黑";
                case "3":
                    return "白";
                case "4":
                    return "黄";
                case "5":
                    return "农黄";
                case "8":
                    return "绿";
                case "9":
                    return "其他";
                default:
                    return "未知(" + type.ToString() + ")";
            }
        }  

        /// <summary>
        /// DateTime时间格式转换为Unix时间戳格式
        /// </summary>
        /// <param name="time"> DateTime时间格式</param>
        /// <returns>Unix时间戳格式</returns>
        public static string ConvertDateTimeInt(System.DateTime time)
        {
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
            return Convert.ToInt64((time - startTime).TotalMilliseconds).ToString(); 
        }

        /// <summary>        
        /// 时间戳转为C#格式时间        
        /// </summary>        
        /// <param name=”timeStamp”></param>        
        /// <returns></returns>        
        private DateTime GetTime(string timeStamp)
        {
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(timeStamp + "0000000");
            TimeSpan toNow = new TimeSpan(lTime);
            return dtStart.Add(toNow);
        }
         
        /// <summary>
        /// 显示错误信息
        /// </summary>
        /// <param name="str"></param>
        public void ShowErrorMessage(string str)
        {
            lblError.Text = str;
        }  
    }
}
c)QueryVehicleReq.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GoodsVehicleTest
{
    /// <summary>
    /// 车辆信息查询
    /// </summary>
    [Serializable]
    public class QueryVehicleReq
    {
        private VehicleInfo[] m_List;
        private string m_remark;
        private int m_status;
         
        /// <summary>
        /// 备注
        /// </summary>
        public VehicleInfo[] List
        {
            get { return m_List; }
            set { m_List = value; }
        }
        
        /// <summary>
        /// 备注
        /// </summary>
        public string remark
        {
            get { return m_remark; }
            set { m_remark = value; }
        }

        /// <summary>
        /// 查询状态
        /// </summary>
        public int status
        {
            get { return m_status; }
            set { m_status = value; }
        }
    } 
}
d)VehicleInfo.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GoodsVehicleTest
{
    /// <summary>
    /// 车辆信息
    /// </summary>
    [Serializable]
    public class VehicleInfo
    {
        private string m_rCdNm;
        private string m_ctyNm;
        private string m_cmdr;
        private string m_cmpNm;
        private string m_cntyNm;
        private string m_ldTn;
        private string m_pltClr;
        private string m_prdCdNm;
        private string m_tmc;
        private string m_vbrndCdNm;
        private string m_vclAxs;
        private string m_vclDrwTn;
        private string m_vclHgt;
        private string m_vclLng;
        private string m_boxLng;
        private string m_boxWdt;
        private string m_boxHgt;
        private string m_adtrNm;
        private string m_vclN;
        private string m_vclWnrNm;
        private string m_vclWnrPhn;
        private string m_vclTn;
        private string m_vclTpNm;
        private string m_vclWdt;
        private string m_vin;
        private string m_adtTm;
        private string m_vdtTm;
        private string m_vrfySt;

        /// <summary>
        /// 终端 ID
        /// </summary>
        public string tmc
        {
            get { return m_tmc; }
            set { m_tmc = value; }
        }

        /// <summary>
        /// SIM 卡卡号
        /// </summary>
        public string cmdr
        {
            get { return m_cmdr; }
            set { m_cmdr = value; }
        }

        /// <summary>
        /// 所属省
        /// </summary>
        public string rCdNm
        {
            get { return m_rCdNm; }
            set { m_rCdNm = value; }
        }

        /// <summary>
        /// 所属市
        /// </summary>
        public string ctyNm
        {
            get { return m_ctyNm; }
            set { m_ctyNm = value; }
        }

        /// <summary>
        /// 所属县 
        /// </summary>
        public string cntyNm
        {
            get { return m_cntyNm; }
            set { m_cntyNm = value; }
        }

        /// <summary>
        /// 车主/业户
        /// </summary>
        public string cmpNm
        {
            get { return m_cmpNm; }
            set { m_cmpNm = value; }
        }

        /// <summary>
        /// 联系人
        /// </summary>
        public string vclWnrNm
        {
            get { return m_vclWnrNm; }
            set { m_vclWnrNm = value; }
        }

        /// <summary>
        /// 联系人手机  
        /// </summary>
        public string vclWnrPhn
        {
            get { return m_vclWnrPhn; }
            set { m_vclWnrPhn = value; }
        }

        /// <summary>
        /// 车辆识别代码/车架号
        /// </summary>
        public string vin
        {
            get { return m_vin; }
            set { m_vin = value; }
        }

        /// <summary>
        /// 车牌号
        /// </summary>
        public string vclN
        {
            get { return m_vclN; }
            set { m_vclN = value; }
        }

        /// <summary>
        /// 车牌颜色
        /// </summary>
        public string pltClr
        {
            get { return m_pltClr; }
            set { m_pltClr = value; }
        }

        /// <summary>
        /// 车辆类型  
        /// </summary>
        public string vclTpNm
        {
            get { return m_vclTpNm; }
            set { m_vclTpNm = value; }
        }

        /// <summary>
        /// 车辆品牌
        /// </summary>
        public string vbrndCdNm
        {
            get { return m_vbrndCdNm; }
            set { m_vbrndCdNm = value; }
        }

        /// <summary>
        /// 车辆型号
        /// </summary>
        public string prdCdNm
        {
            get { return m_prdCdNm; }
            set { m_prdCdNm = value; }
        }

        /// <summary>
        /// 总质量(kg)  
        /// </summary>
        public string vclTn
        {
            get { return m_vclTn; }
            set { m_vclTn = value; }
        }
         
        /// <summary>
        /// 核定载质量(kg)  
        /// </summary>
        public string ldTn
        {
            get { return m_ldTn; }
            set { m_ldTn = value; }
        }
         
        /// <summary>
        /// 准牵引总质量(kg) 
        /// </summary>
        public string vclDrwTn
        {
            get { return m_vclDrwTn; }
            set { m_vclDrwTn = value; }
        }

        /// <summary>
        /// 外廓尺寸-长(mm)  
        /// </summary>
        public string vclLng
        {
            get { return m_vclLng; }
            set { m_vclLng = value; }
        }

        /// <summary>
        /// 外廓尺寸-宽(mm)  
        /// </summary>
        public string vclWdt
        {
            get { return m_vclWdt; }
            set { m_vclWdt = value; }
        }

        /// <summary>
        /// 外廓尺寸-高(mm)  
        /// </summary>
        public string vclHgt
        {
            get { return m_vclHgt; }
            set { m_vclHgt = value; }
        }
         
        /// <summary>
        /// 外廓尺寸(mm)
        /// </summary>
        public virtual string vclSize
        {
            get { return m_vclLng  + "(长) x " + m_vclWdt + "(宽) x " + m_vclHgt + "(高)"; }
        }

        /// <summary>
        /// 货厢内部尺寸长(mm)
        /// </summary>
        public string boxLng
        {
            get { return m_boxLng; }
            set { m_boxLng = value; }
        }

        /// <summary>
        /// 货厢内部尺寸宽(mm)
        /// </summary>
        public string boxWdt
        {
            get { return m_boxWdt; }
            set { m_boxWdt = value; }
        }

        /// <summary>
        /// 货厢内部尺寸高(mm)  
        /// </summary>
        public string boxHgt
        {
            get { return m_boxHgt; }
            set { m_boxHgt = value; }
        }

        /// <summary>
        /// 货厢内部寸(mm)
        /// </summary>
        public virtual string boxSize
        {
            get { return m_boxLng + "(长) x " + m_boxWdt + "(宽) x " + m_boxHgt + "(高)"; }
        }

        /// <summary>
        /// 轴数
        /// </summary>
        public string vclAxs
        {
            get { return m_vclAxs; }
            set { m_vclAxs = value; }
        }

        /// <summary>
        /// 审核人名称
        /// </summary>
        public string adtrNm
        {
            get { return m_adtrNm; }
            set { m_adtrNm = value; }
        }
        
        /// <summary>
        /// 审核时间 
        /// </summary>
        public string adtTm
        {
            get { return m_adtTm; }
            set { m_adtTm = value; }
        }

        /// <summary>
        /// 有效期时间
        /// </summary>
        public string vdtTm
        {
            get { return m_vdtTm; }
            set { m_vdtTm = value; }
        }

        /// <summary>
        /// 车主手机号验证状态
        /// </summary>
        public string vrfySt
        {
            get { return m_vrfySt; }
            set { m_vrfySt = value; }
        }
    }
}
(5)核心代码:

string str = "type=xxx&user=xxx&T=" + dtNow;//设置传输参数
            string strEn=Encrypt.Security.EnCode(str);//加密

            System.Net.WebClient client = new System.Net.WebClient();
            string reply = client.DownloadString("http://xxx/BasisInfoInterface/vinfos?p=" + strEn); //http地址并返回结果
            string DeReply = Encrypt.Security.DeCode(reply);//解密

            //处理返回值
            string jsona = @DeReply;//这里的@是不要转义的意思
            JavaScriptSerializer jscvt = new JavaScriptSerializer(); 
            QueryVehicleReq objQuery = jscvt.Deserialize<QueryVehicleReq>(jsona); //将jsona字符串转变成指定类型对象






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值