技术博客
邮编区域互查返回字段全解:area/county/city/province/code(postcode)/areacode 一文读懂

邮编区域互查返回字段全解:area/county/city/province/code(postcode)/areacode 一文读懂

作者: 万维易源
2026-09-03
邮编查询邮编区域互查ShowAPI免费接口API教程
# 邮编区域互查返回字段全解:area/county/city/province/code(postcode)/areacode 一文读懂 > 邮编区域互查(apiCode=1917)· 免费接口 · POST/GET · JSON · 初级~中级开发者 · 约 8 分钟 ## 核心要点 - 返回分两层:系统级(`showapi_res_code` 等)包裹业务级 `showapi_res_body`,业务数据都在 `showapi_res_body` 里。 - 三个接入点的 `contentlist` 结构大体一致,但**邮编字段名不同**:接入点1/3 叫 `code`,接入点2 叫 `postcode`——文档参数表把接入点2 错写成 `code`,本文以实测为准。 - 三个接入点实测都会返回文档未单列的 `areacode`(电话区号),可一并利用。 ## Why:读懂字段才能写对代码 字段名写错是接入这个接口最常见的坑:把接入点2 的 `postcode` 当成 `code` 去取,结果拿到 `undefined`。本文把三个接入点的字段一次性讲清,并标出文档与实测的差异,省去你踩坑返工。 ## What:前置条件与接口速览 | 项 | 说明 | |----|------| | 接口 | 邮编区域互查(apiCode=1917) | | 接入点 | 1917-1 邮编查地区 / 1917-2 地区查邮编 / 1917-3 详细地区邮编 | | 返回格式 | JSON,业务数据在 `showapi_res_body` | | 计费 | 免费(有使用档次限制) | ## How:两层返回结构与字段表 ### 系统级字段(每次都在最外层) | 字段 | 类型 | 说明 | |------|------|------| | `showapi_res_code` | Number | 系统级状态码,0 为成功 | | `showapi_res_error` | String | 错误信息,成功时为空 | | `showapi_res_id` | String | 本次请求标识 | | `showapi_fee_num` | Number | 本次计费条数(免费接口也返回) | | `showapi_res_body` | Object | 业务数据容器 | ### 业务级 `showapi_res_body` 公共字段 | 字段 | 类型 | 说明 | |------|------|------| | `ret_code` | Number | 业务码:0 成功,-1 失败(如查不到地区) | | `msg` | String | 返回说明,如「查询成功!」「抱歉,没有找到相关的区域信息!」 | | `contentlist` | Array | 结果列表;失败或未命中时可能为空/不返回 | | `currentPage` / `allPages` / `allNum` / `maxResult` | Number | 分页信息(见《分页实战》) | ### `contentlist[]` 逐接入点字段对照 | 字段 | 1917-1 邮编查地区 | 1917-2 地区查邮编 | 1917-3 详细地区邮编 | 说明 | |------|------|------|------|------| | `province` | ✅ | ✅ | ✅ | 省 | | `city` | ✅ | ✅ | ✅ | 城市 | | `area` | ✅ | ✅ | ✅ | 区县 | | `county` | ✅ | ✅ | ✅ | 街道/乡镇 | | **邮编字段** | `code` | **`postcode`** | `code` | ⚠️ 接入点2 是 `postcode`,非文档参数表所写 `code` | | `areacode` | ✅(未文档化) | ✅(未文档化) | ✅(未文档化) | 电话区号,如 0595/0871 | | `_id` / `update` / `ct` | — | ✅ | — | 接入点2 额外元数据 | ## 返回示例(接入点2,地区查邮编,实测) ```json { "showapi_res_code": 0, "showapi_fee_num": 1, "showapi_res_body": { "ret_code": 0, "msg": "查询成功!", "contentlist": [ {"_id":"62f574a6d08520548a967210","area":"官渡区","county":"七家村","city":"昆明市","province":"云南省","postcode":"650217","areacode":"0871"} ] } } ``` 注意:这里邮编是 **`postcode`**,取值应写 `item.postcode`,不是 `item.code`。 ## 进阶/边界 - **不要混用字段名**:接入点2 用 `postcode`,其余用 `code`。统一封装一层映射函数最稳。 - **`areacode` 未文档化但稳定**:可作为「顺带拿到电话区号」的红利,详见《areacode 字段深挖》。 - **失败结构更精简**:接入点2 查不到时只返回 `ret_code`+`msg`,无 `contentlist`,取数前务必判空。 - **文档差异已如实标注**:本文所有字段名均经真实调用校验,与文档冲突处以上文为准。 ## FAQ **Q1:为什么接入点2 取不到邮编?** 因为它返回的是 `postcode` 字段,不是 `code`;文档参数表写错了,以实测为准。 **Q2:`areacode` 文档没写,能信吗?** 三个接入点实测均稳定返回,可放心使用,但因其未在官方参数表列出,建议以实际返回为准并做兜底。 **Q3:`ret_code` 和 `showapi_res_code` 有什么区别?** 前者是业务结果(查到/没查到),后者是系统级(请求是否成功送达);都要判 0。 **Q4:失败时会返回 `contentlist` 吗?** 接入点2 查不到时不返回,直接用会报错,先判 `ret_code`。 **Q5:邮编字段类型是什么?** 字符串(如 `"362504"`),比较时注意不要当成数字。 ## 相关能力 / 下一步阅读 - [邮编区域互查错误码排查](https://www.showapi.com/guides/postcode-error-codes-1917) - [邮编区域互查·地区查邮编(接入点2)实战](https://www.showapi.com/guides/postcode-region-to-zip-1917) - [邮编区域互查里的 areacode 电话区号字段](https://www.showapi.com/guides/postcode-areacode-field-1917) - **本系列共 12 篇**:查看[邮编区域互查指南总目录](https://www.showapi.com/guides/postcode-guides-1917)