目前公司的幾個小需求 ...
簡單來說就是WinForm接API啦
距離上次發文接近半年之久,真是自形慚愧
這次就來接一些API練習一下吧,這次主管希望公司的客戶系統能快速取得客戶的事業資料
不要再浪費時間開Browser查詢了
商工登記公示資料查詢
原本以為政府的頁面大多是外包廠商,但事實上自去年起,這個網站就開放API介接囉
商工行政資料開放平台 API
總之就是填個資料...掃描後寄信過去,大概1~2小時對方就會回信
這個網站開發得很佛心,他特別提供了開發指引,看起來是用Get來取資料...
我當時申請的是Json格式,取得的原始資料如下圖(用Acer的統編來測試,我另外用了JsonEditOnline來幫助查看資訊)
我想要透過以下的條件取得資料
輸入統一編號,取得該公司的所營事業資料
就簡單寫個Function囉,因為是Json資料,請記得到Nuget安裝Json.NET並引用
Option Strict On
Imports Newtonsoft.Json.Linq
Imports System.Text
Imports System.Net
Module Module1
Sub Main()
Console.WriteLine("請輸入統一編號:")
Dim x As String = Console.ReadLine()
Dim Value As JArray = GetBusinessItem(x)
For Each Key In Value
Console.WriteLine(Key.Item("Business_Item").ToString & " " & Key.Item("Business_Item_Desc").ToString)
Next
Console.ReadKey()
End Sub
Private Function GetBusinessItem(businessNo As String) As JArray
Dim Client As New WebClient()
Dim url As String = "http://data.gcis.nat.gov.tw/od/data/api/236EE382-4942-41A9-BD03-CA0709025E7C?$format=json&$filter=Business_Accounting_NO%20eq%20" & businessNo
Dim JsonStr As String = ""
JsonStr = Encoding.UTF8.GetString(Client.DownloadData(New Uri(url.Trim())))
Dim Obj As JArray = CType(Newtonsoft.Json.JsonConvert.DeserializeObject(JsonStr), JArray)
Dim GetValue As JArray = CType(Newtonsoft.Json.JsonConvert.DeserializeObject(Obj.Item(0).Item("Cmp_Business").ToString), JArray)
Return GetValue
End Function
End Module
我只要取得該公司的營登資料,所以只需要取得Key:Cmp_Business的序列即可...
大概就這樣,這邊用暴雪(Blizzard)的統編來測試,如下圖
單純筆記,皆為非正規作法,旁門左道,胡搞瞎搞。