; ; zipcloud(郵便番号データ配信サービス)を使って、 ; 郵便番号から住所文字列を取得するサンプル […]
; ; zipcloud(郵便番号データ配信サービス)を使って、 ; 郵便番号から住所文字列を取得するサンプル […]
; ; zipcloud(郵便番号データ配信サービス)を使って、 ; 郵便番号から住所文字列を取得するサンプル ; #include "hspinet.as" #include "encode.as" #include "hspinet.as" netinit if stat : dialog "ネット接続できません。" : end ; リクエストURL neturl "http://zipcloud.ibsnet.co.jp/api/" ; リクエストパラメータ ; GET形式でCGIにパラメーターを渡す ; zipcode 郵便番号(必須パラメータ) ; callback コールバック関数名 ; limit 最大件数 yubin = "100-0013" ; 東京都千代田区霞が関 ; yubin = "0790177" ; 北海道美唄市上美唄町 協和/南 netrequest_get "search?zipcode=" + yubin mes "DOWNLOAD 開始" *main ; 結果待ちのためのループ netexec res if res > 0 : goto *comp if res < 0 : goto *bad await 50 goto *main *bad ; エラー neterror estr mes "ERROR "+estr stop *comp ; 完了 mes "DOWNLOAD 完了" netgetv buf ; UTF8 -> Shift-JIS buf_sjis = utf8n2sjis( buf ) ; LF -> CL+LF ; JSON構文解析には不要だけど、表示に必要な処理 CL = "" LF = "" poke CL, 0, $0D poke LF, 0, $0A strrep buf_sjis, LF, CL+LF mesbox buf_sjis,640,200,1 ; JSON構文解析 ; レスポンスフィールド ; status ステータス 正常時は 200、エラー発生時にはエラーコードが返される。 ; message メッセージ エラー発生時に、エラーの内容が返される。 ; results --- 検索結果が複数存在する場合は、以下の項目が配列として返される --- ; zipcode 郵便番号 7桁の郵便番号。ハイフンなし。 ; prefcode 都道府県コード JIS X 0401 に定められた2桁の都道府県コード。 ; address1 都道府県名 ; address2 市区町村名 ; address3 町域名 ; kana1 都道府県名カナ ; kana2 市区町村名カナ ; kana3 町域名カナ ; ; エラー ; 400 入力パラメータエラー ; 500 API内部で発生したエラー jsonopen ptJson, buf_sjis jsongetobj ptJson_results, "results", ptJson ; address jsonnext ptJson_results_c, ptJson_results, 2 while( ptJson_results_c != 0 ) jsongets ad1 ,"address1", ptJson_results_c jsongets ad2 ,"address2", ptJson_results_c jsongets ad3 ,"address3", ptJson_results_c mes "" + ad1 + ad2 + ad3 jsonnext ptJson_results_c, ptJson_results_c, 0 wend ; status jsongeti st, "status", ptJson ; mes "(" + stat + ") " + st if st = 200 : mes "ステータス:正常" if st = 400 : mes "ステータス:入力パラメータエラー" if st = 500 : mes "ステータス:API内部で発生したエラー" jsonclose stop