C#通过发送 http 请求调用接口之Get
2014-07-31 10:27
721 查看
1.实现车辆信息查询接口
(1)描述
本接口提供指定车牌号,车牌颜色的车辆信息查询。
(2)接口调用示例:
待加密格式
type=xxx&user=...
(3)请求地址格式
http://****/vinfos?p=加密后数据
(4)实现:
a)aspx:
(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字符串转变成指定类型对象
相关文章推荐
- C#通过发送 http 请求调用接口之Post
- httpClient发送get请求调用接口
- Android HTTP实例 使用GET方法和POST方法发送请求(通过Apache接口实现)
- python通过http请求发送soap报文进行webservice接口调用
- 通过http-Get请求调用Web Service (C#)
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#发送HttpPost请求调用WebService
- Android 发送HTTP GET POST 请求以及通过 MultipartEntityBuilder 上传文件(二)
- 通过HttpWebRequest分别向服务器发送GET或POST请求
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#中发送HttpPost请求来调用WebService
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- [导入]C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
- C#通过Http发送Soap请求
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
- C#中发送HttpPost请求来调用WebService