技术博客
邮编区域互查·邮编查地区(接入点1)实战:快递物流与地址验证怎么用

邮编区域互查·邮编查地区(接入点1)实战:快递物流与地址验证怎么用

作者: 万维易源
2026-09-03
邮编查询邮编区域互查ShowAPI免费接口API教程
# 邮编区域互查·邮编查地区(接入点1)实战:快递物流与地址验证怎么用 > 邮编区域互查(apiCode=1917)· 接入点1 邮编查询区域 · 免费接口 · 初级~中级开发者 · 约 8 分钟 ## 核心要点 - 接入点1(`1917-1`)是「邮编 → 地区」:传入 6 位 `code`,返回省/市/区/街道与电话区号。 - 实测可用、数据真实(如 `362504`→福建泉州德化县;`200000`→上海辖区)。 - 一个邮编可能对应多条街道,用 `page` 翻页取全;返回含未文档化的 `areacode`。 ## Why:只有邮编时,它最有用 用户填了邮编、没填详细地址?表单只收集到邮编?快递面单只有邮编?接入点1 帮你把邮编补成完整行政区划,做地址校验、按地区分单、地图归属都方便。 ## What:接口速览 | 项 | 说明 | |----|------| | 接入点地址 | `https://route.showapi.com/1917-1?appKey={your_appKey}` | | 请求参数 | `code`(6 位邮编,非必填)、`page`(页码,非必填) | | 返回邮编字段名 | `code` | | 计费 | 免费(有使用档次限制) | ## How:邮编查地区 ### Python ```python import requests def zip_to_region(app_key, code, page=1): r = requests.post("https://route.showapi.com/1917-1", params={"appKey": app_key, "code": code, "page": page}, timeout=10) data = r.json() if data.get("showapi_res_code") != 0: return None, data.get("showapi_res_error") body = data["showapi_res_body"] if body.get("ret_code") != 0: return None, body.get("msg") return body.get("contentlist", []), None items, err = zip_to_region("YOUR_APPKEY", "362504") if err: print("查询失败:", err) else: for it in items: print(it["province"], it["city"], it["area"], it["county"], "区号", it.get("areacode")) ``` ### cURL ```bash curl -X POST "https://route.showapi.com/1917-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ --data-urlencode "code=362504" --data-urlencode "page=1" ``` ### Node.js(fetch) ```javascript const res = await fetch(`https://route.showapi.com/1917-1?appKey=YOUR_APPKEY`, { method: "POST", body: new URLSearchParams({ code: "362504", page: "1" }), signal: AbortSignal.timeout(10000) }); const data = await res.json(); const b = data.showapi_res_body; if (b.ret_code !== 0) throw new Error(b.msg); console.log(b.contentlist); ``` ## 返回示例与解析 ```json { "showapi_res_body": { "ret_code": 0, "code": "362504", "msg": "查询成功!", "contentlist": [ {"area":"德化县","county":"国宝乡上洋村","city":"泉州市","province":"福建省","areacode":"0595","code":"362504"} ], "maxResult": 20, "allNum": 10, "allPages": 1, "currentPage": 1 } } ``` | 字段 | 含义 | |------|------| | `province/city/area/county` | 省/市/区县/街道 | | `code` | 邮编(字符串) | | `areacode` | 电话区号(未文档化,实测稳定返回) | ## 进阶/边界 - **一对多**:一个邮编对应多个 `county`,用 `page` 翻页;`allNum`/`allPages` 告诉你总量。 - **地址校验**:可把用户输入的省/市/区与返回结果比对,不一致则提示用户核对。 - **缓存**:邮编→地区相对稳定,建议本地缓存(见《缓存策略》)。 - **边界**:邮编须为 6 位有效数字;查不到时 `ret_code` 非 0,看 `msg`。 ## FAQ **Q1:一个邮编返回多条街道正常吗?** 正常,区县级下有多个街道/乡镇,翻页取全。 **Q2:返回里有区号 `areacode` 吗?** 有,实测稳定返回(如 0595),文档未单列。 **Q3:邮编输错几位会怎样?** 可能 `ret_code` 非 0 或无结果,按 `msg` 处理。 **Q4:`maxResult` 是多少?** 每页最大 20 条,由接口固定返回。 **Q5:能只查省一级吗?** 接入点1 以邮编为入口,最小粒度到街道;按省聚合需自己处理返回。 ## 相关能力 / 下一步阅读 - [邮编区域互查返回字段全解](https://www.showapi.com/guides/postcode-response-fields-1917) - [免费接口如何设计缓存策略](https://www.showapi.com/guides/postcode-cache-1917) - [邮编区域互查错误码排查](https://www.showapi.com/guides/postcode-error-codes-1917) - **本系列共 12 篇**:查看[邮编区域互查指南总目录](https://www.showapi.com/guides/postcode-guides-1917)