中通打印助手-查快遞

中通打印助手開發到如今已通過去了四個月了,從七月份開始成立項目,前後通過兩我的的接手後,已經迭代了不少的版本了,我也很用人很認真的在作,爲咱們中通的網點考慮,如何更快更好更方便的實現打印,打印助手就是用來打印,這個是軟件的最終目的,若是這個沒有達到那這個就是一個失敗的項目。html

  在開發中也慢慢的加入了不少的小功能,如今寫博客和你們共享一下,至於代碼,我會公開一些,公司的項目也沒有放到GIT上,因此源碼暫時不開放了,須要安裝包看看的,請到中通的官網下載,我這裏提供連接地址:http://www.zto.cn/GuestService/Printexpress

  這是小工具的截圖json

  1. 查快遞
  2. 計算器
  3. 手機號碼歸屬地查詢
  4. 二維碼鞏固
  5. 條形碼工具
  6. 中通大頭筆查詢
  7. 截圖
  8. 天氣
  9. 識別百度地址

這些都是咱們中通網點可能會用到的,特別是大頭筆查詢,網點很贊同,下面介紹一下查快遞的功能工具

查快遞(自動識別單號)post

 

 

執行邏輯測試

咱們能夠在快遞100的官網進行單號查詢,這個其實也是挺好的,很方便,爲何人家作的好,就是方便好用,看下我抓取的截圖,這個就是這功能的關鍵點,請求接口,解析返回的Json,對就是這樣的簡單。url

 

看代碼spa

複製代碼
 1         /// <summary>
 2         /// 查詢快遞100接口
 3         /// </summary>
 4         /// <param name="expressCode">快遞公司編號(從快遞100抓取)</param>
 5         /// <param name="billCode">快遞單號</param>
 6         public void Search(string expressCode, string billCode)
 7         {
 8             //請求的Url: http://www.kuaidi100.com/query?type=shunfeng&postid=201215344815&id=1&valicode=&temp=0.12316451570950449
 9             string json = HttpGet("http://www.kuaidi100.com/query", "type=" + expressCode + "&postid=" + billCode);
10             if (string.IsNullOrEmpty(json))
11             {
12                 return;
13             }
14             Dictionary<string, object> ht = SelectDictionary(json);
15             if (ht["status"].ToString() == "200")
16             {
17                 ArrayList aList = new ArrayList();
18                 aList = (ArrayList)ht["data"];
19                 List<BillResult> billResults = new List<BillResult>();
20                 for (int i = 0; i < aList.Count; i++)
21                 {
22                     Dictionary<string, object> di = (Dictionary<string, object>)aList[i];
23                     billResults.Add(new BillResult()
24                     {
25                         time = di["time"].ToString(),
26                         context = di["context"].ToString()
27                     });
28                 }
29                 gcBill.DataSource = billResults;
30             }
31             else
32             {
33                 XtraMessageBox.Show(@"快遞或單號錯誤", AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Warning);
34             }
35         }
36         /// <summary>
37         /// GET模擬請求
38         /// </summary>
39         /// <param name="url">URL路徑</param>
40         /// <param name="postDataStr">參數</param>
41         /// <returns>返回請求信息</returns>
42         public static string HttpGet(string url, string postDataStr)
43         {
44             try
45             {
46                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + (postDataStr == "" ? "" : "?") + postDataStr);
47                 request.AllowAutoRedirect = true;
48                 request.Method = "GET";
49                 request.ContentType = "text/html;charset=UTF-8";
50                 var c = new CookieContainer();
51                 request.CookieContainer = c;
52                 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
53                 Stream myResponseStream = response.GetResponseStream();
54                 StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
55                 string retString = myStreamReader.ReadToEnd();
56                 myStreamReader.Close();
57                 myResponseStream.Close();
58                 return retString;
59             }
60             catch (Exception)
61             {
62                 return "";
63             }
64         }
65         
66         /// <summary>
67         /// 快遞100返回的Json解析實體
68         /// </summary>
69         public class BillResult
70         {
71             public string time { get; set; }
72 
73             public string context { get; set; }
74         }
複製代碼

你們能夠測試一下,這個主要就是來方便粘貼單號直接顯示快遞的物流跟蹤記錄,簡單好用。http://www.paymob.cncode

相關文章
相關標籤/搜索