Flutter插件via_cep的介绍与使用方法
Package 用于与 API ViaCEP 集成(https://www.viacep.com.br)。如果您正在寻找一个免费且高性能的 WebService 来查询巴西邮政编码(CEP)?请使用此服务,提升您应用的质量,并帮助维护此数据库的最新状态。
使用方法
以下是一个简单的使用示例:
import 'package:via_cep/via_cep.dart';
main() async {
var CEP = new via_cep(); // 创建 via_cep 实例
var result = await CEP.searchCEP('12512170', 'json', ''); // 查询 CEP
// 成功处理
if (CEP.getResponse() == 200) {
print('CEP: '+CEP.getCEP()); // 打印 CEP
print('Logradouro: '+CEP.getLogradouro()); // 打印街道名称
print('Complemento: '+CEP.getComplemento()); // 打印补充信息
print('Bairro: '+CEP.getBairro()); // 打印街区名称
print('Localidade: '+CEP.getLocalidade()); // 打印城市名称
print('UF: '+CEP.getUF()); // 打印州缩写
print('Unidade: '+CEP.getUnidade()); // 打印单位编号
print('IBGE '+CEP.getIBGE()); // 打印 IBGE 市政编码
print('GIA: '+CEP.getGIA()); // 打印 GIA 编码
// 失败处理
} else {
print('Código de Retorno: '+CEP.getResponse().toString()); // 打印返回状态码
print('Erro: '+CEP.getBody()); // 打印错误信息
}
}
功能特性
searchCEP 方法
searchCEP 是用于查询 CEP 的方法。
参数说明:
String CEP: 输入的 CEP(仅限数字,不包含特殊字符,长度为 8 位)。output: 数据输出类型,默认推荐使用json。- 选项:
json,xml,piped,querty
- 选项:
sensitive: 输出数据的大小写格式。- 选项:空白或
null,lower,uper - 任何未识别的文本将被解释为空白或
null。
- 选项:空白或
gets 方法
这些方法在成功时(状态码 200)返回数据,否则返回 null。
getBody();: 返回 API 响应的完整内容。getResponse();: 返回 API 查询的状态码(成功默认为 200)。getCEP();: 获取格式化的 CEP。getLogradouro();: 获取街道名称。getComplemento();: 获取补充信息。getBairro();: 获取街区名称。getLocalidade();: 获取城市名称。getUF();: 获取州的缩写。getUnidade();: 获取单位编号。getIBGE();: 获取 IBGE 市政编码。getGIA();: 获取 GIA 编码。
更多详情可以访问 ViaCEP 官方网站 (https://www.viacep.com.br)。
功能需求与问题报告
如需提出功能需求或报告问题,请访问 GitHub issue tracker。
示例代码完整 Demo
以下是一个完整的 Flutter 应用程序示例,展示如何使用 via_cep 插件来查询 CEP 并显示结果:
import 'package:flutter/material.dart';
import 'package:via_cep/via_cep.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('ViaCEP 查询示例'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
var cepInstance = new via_cep();
var result = await cepInstance.searchCEP('12512170', 'json', '');
if (cepInstance.getResponse() == 200) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('查询结果'),
content: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text('CEP: ${cepInstance.getCEP()}'),
Text('街道: ${cepInstance.getLogradouro()}'),
Text('补充信息: ${cepInstance.getComplemento()}'),
Text('街区: ${cepInstance.getBairro()}'),
Text('城市: ${cepInstance.getLocalidade()}'),
Text('州: ${cepInstance.getUF()}'),
Text('单位编号: ${cepInstance.getUnidade()}'),
Text('IBGE 编码: ${cepInstance.getIBGE()}'),
Text('GIA 编码: ${cepInstance.getGIA()}'),
],
),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text('关闭'),
),
],
);
},
);
} else {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('查询失败'),
content: Text(
'错误: ${cepInstance.getBody()}, 状态码: ${cepInstance.getResponse()}'),
actions: [
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: Text('关闭'),
),
],
);
},
);
}
},
child: Text('查询 CEP'),
),
),
),
);
}
}更多关于Flutter插件via_cep的介绍与使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html

