using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO; using Xfrog.Net; using System.Diagnostics; using System.Web;   //---------------------------------- // 苹果序列号调用示例代码 - 聚合数据 // 在线接口文档:http://www.juhe.cn/docs/37 // 代码中JsonObject类下载地址:http://download.csdn.net/download/gcm3206021155665/7458439 //----------------------------------   namespace ConsoleAPI {     class Program     {         static void Main(string[] args)         {             string appkey = "*******************"; //配置您申请的appkey                             //1.苹果序列号/IMEI号查询             string url1 = "http://apis.juhe.cn/appleinfo/index";               var parameters1 = new Dictionary();               parameters1.Add("sn" , ""); //苹果产品的序列号或IMEI号             parameters1.Add("dtype" , ""); //返回数据格式:json或xml,默认json             parameters1.Add("key", appkey);//你申请的key               string result1 = sendPost(url1, parameters1, "get");               JsonObject newObj1 = new JsonObject(result1);             String errorCode1 = newObj1["error_code"].Value;               if (errorCode1 == "0")             {                 Debug.WriteLine("成功");                 Debug.WriteLine(newObj1);             }             else             {                 //Debug.WriteLine("失败");                 Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value);             }             }           ///         /// Http (GET/POST)         ///         /// 请求URL         /// 请求参数         /// 请求方法         /// 响应内容         static string sendPost(string url, IDictionary 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();                     Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);                     return GetResponseAsString(rsp, encoding);                 }                 catch (Exception ex)                 {                     return ex.Message;                 }                 finally                 {                     if (reqStream != null) reqStream.Close();                     if (rsp != null) rsp.Close();                 }             }             else             {                 //创建请求                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(parameters, "utf8"));                   //GET请求                 request.Method = "GET";                 request.ReadWriteTimeout = 5000;                 request.ContentType = "text/html;charset=UTF-8";                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();                 Stream myResponseStream = response.GetResponseStream();                 StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));                   //返回内容                 string retString = myStreamReader.ReadToEnd();                 return retString;             }         }           ///         /// 组装普通文本请求参数。         ///         /// Key-Value形式请求参数字典         /// URL编码后的请求数据         static string BuildQuery(IDictionary parameters, string encode)         {             StringBuilder postData = new StringBuilder();             bool hasParam = false;             IEnumerator> dem = parameters.GetEnumerator();             while (dem.MoveNext())             {                 string name = dem.Current.Key;                 string value = dem.Current.Value;                 // 忽略参数名或参数值为空的参数                 if (!string.IsNullOrEmpty(name))//&& !string.IsNullOrEmpty(value)                 {                     if (hasParam)                     {                         postData.Append("&");                     }                     postData.Append(name);                     postData.Append("=");                     if (encode == "gb2312")                     {                         postData.Append(HttpUtility.UrlEncode(value, Encoding.GetEncoding("gb2312")));                     }                     else if (encode == "utf8")                     {                         postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8));                     }                     else                     {                         postData.Append(value);                     }                     hasParam = true;                 }             }             return postData.ToString();         }           ///         /// 把响应流转换为文本。         ///         /// 响应流对象         /// 编码方式         /// 响应文本         static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding)         {             System.IO.Stream stream = null;             StreamReader reader = null;             try             {                 // 以字符流的方式读取HTTP响应                 stream = rsp.GetResponseStream();                 reader = new StreamReader(stream, encoding);                 return reader.ReadToEnd();             }             finally             {                 // 释放资源                 if (reader != null) reader.Close();                 if (stream != null) stream.Close();                 if (rsp != null) rsp.Close();             }         }     } }