123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- using Newtonsoft.Json;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Text;
- using System.Threading.Tasks;
- namespace Ant.Service.Common
- {
- public class WebApiHelp
- {
- /// <summary>
- /// http://apilocate.amap.com/position?accesstype=0&imei=111111111111515&smac=E0:DB:55:E4:C7:49&cdma=0
- /// &bts=460,1,17431,1102,-13&nearbts=460,1,17431,1102,-13
- /// &key=faeed74bf5b723240d2bc8b83add4311&network=GPRS
- /// </summary>
- /// <returns></returns>
- public static GPSRoot getLocationGPS(string imei, int mcc, int mnc, int lac, int ci, int rxlev)
- {
- try
- {
- string key = "faeed74bf5b723240d2bc8b83add4311";
- Dictionary<string, string> parames = new Dictionary<string, string>();
- parames.Add("accesstype", "0");
- parames.Add("imei", imei);
- parames.Add("cdma", "0");
- parames.Add("network", "GPRS");
- string btsstr = mcc + "," + mnc + "," + lac + "," + ci + "," + rxlev;
- parames.Add("bts", btsstr);
- parames.Add("nearbts", btsstr + "|" + btsstr + "|" + btsstr);
- parames.Add("key", key);
- Tuple<string, string> parameters = GetQueryString(parames);
- var carstate = Get<GPSRoot>("http://apilocate.amap.com/position", parameters.Item2);
- return carstate;
- }
- catch (Exception ex)
- {
- GPSRoot request = new GPSRoot();
- request.status = "error";
- // LoggerHelper.Error("getLocationGPS出现错误", ex);
- return request;
- }
- }
- /// <summary>
- /// 用户需要登录Get请求
- /// </summary>
- /// <typeparam name="T"></typeparam>
- /// <param name="webApi"></param>
- /// <param name="queryStr"></param>
- /// <param name="staffId"></param>
- /// <returns></returns>
- public static T Get<T>(string webApi, string queryStr)
- {
- try
- {
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(webApi + "?" + queryStr);
- HttpWebResponse response = (HttpWebResponse)request.GetResponse();
- Stream streamReceive = response.GetResponseStream();
- StreamReader streamReader = new StreamReader(streamReceive, Encoding.UTF8);
- string strResult = streamReader.ReadToEnd();
- streamReader.Close();
- streamReceive.Close();
- request.Abort();
- response.Close();
- return JsonConvert.DeserializeObject<T>(strResult);
- }
- catch (Exception ex)
- {
- return default(T);
- }
- }
- /// <summary>
- /// 拼接get参数
- /// </summary>
- /// <param name="parames"></param>
- /// <returns></returns>
- public static Tuple<string, string> GetQueryString(Dictionary<string, string> parames)
- {
- // 第一步:把字典按Key的字母顺序排序
- IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parames);
- IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator();
- // 第二步:把所有参数名和参数值串在一起
- StringBuilder query = new StringBuilder(""); //签名字符串
- StringBuilder queryStr = new StringBuilder(""); //url参数
- if (parames == null || parames.Count == 0)
- return new Tuple<string, string>("", "");
- while (dem.MoveNext())
- {
- string key = dem.Current.Key;
- string value = dem.Current.Value;
- if (!string.IsNullOrEmpty(key))
- {
- query.Append(key).Append(value);
- queryStr.Append("&").Append(key).Append("=").Append(value);
- }
- }
- return new Tuple<string, string>(query.ToString(), queryStr.ToString().Substring(1, queryStr.Length - 1));
- }
- }
- public class Result
- {
- /// <summary>
- ///
- /// </summary>
- public string type { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string location { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string radius { get; set; }
- /// <summary>
- /// 江苏省 常州市 新北区 汉江中路 靠近中国建设银行(新北支行)
- /// </summary>
- public string desc { get; set; }
- /// <summary>
- /// 中国
- /// </summary>
- public string country { get; set; }
- /// <summary>
- /// 江苏省
- /// </summary>
- public string province { get; set; }
- /// <summary>
- /// 常州市
- /// </summary>
- public string city { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string citycode { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string adcode { get; set; }
- /// <summary>
- /// 汉江中路
- /// </summary>
- public string road { get; set; }
- /// <summary>
- /// 汉江中路
- /// </summary>
- public string street { get; set; }
- /// <summary>
- /// 中国建设银行(新北支行)
- /// </summary>
- public string poi { get; set; }
- }
- public class GPSRoot
- {
- /// <summary>
- ///
- /// </summary>
- public string status { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string info { get; set; }
- /// <summary>
- ///
- /// </summary>
- public string infocode { get; set; }
- /// <summary>
- ///
- /// </summary>
- public Result result { get; set; }
- }
- }
|