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