pubspec.yaml
dependencies:
http: ^0.13.4
flutter:
sdk: flutter
.dart
import 'package:http/http.dart' as http;


http_page.dart
main.dart

发起请求
//发送 Get 请求
_doGet() async {
var url =
Uri.parse('https://cx.shouji.360.cn/phonearea.php?number=17688888888');
var response = await http.get(url);
if (response.statusCode == 200) {
//请求成功
_success(response);
} else {
//请求失败
_failed(response);
}
}
处理请求结果
//请求成功
_success(http.Response response) {
setState(() {
resultShow = '请求成功:${_decodeUtf8(response.body)}';
});
}
//请求失败
_failed(http.Response response) {
setState(() {
resultShow =
"请求失败:errorCode: ${response.statusCode} errorMessage: ${response.body}";
});
}
uf8 解码
// utf8 解码
_decodeUtf8(String responseBody) {
var bytes = Uint8List.fromList(responseBody.codeUnits);
String decodeString = utf8.decode(bytes);
var decodeMap = json.decode(decodeString);
return decodeMap;
}

发起请求
//发送 Post 请求 - form
_doFormPost() async {
var url = Uri.parse('http://api.crap.cn/visitor/example/post.do');
var params = {
'param': '测试22',
'email': 'crap.cn@gmail.com',
'555': '我'
}; //如果传 Map 类型,必须是 Map,否则会解析报错
var response =
await http.post(url, body: params); //默认是 form 类型,所以无需设置 content - type
if (response.statusCode == 200) {
//请求成功
_success(response);
} else {
//请求失败
_failed(response);
}
}
处理请求结果
//请求成功
_success(http.Response response) {
setState(() {
//返回结果的汉字用了 utf8 编码,所以需要对结果进行 utf8 解码
// resultShow = '请求成功:${_decodeUtf8(response.body)}';
//返回结果的汉字未用 utf8 编码,所以无需解码
resultShow = '请求成功:${response.body}';
});
}
//请求失败
_failed(http.Response response) {
setState(() {
resultShow =
"请求失败:errorCode: ${response.statusCode} errorMessage: ${response.body}";
});
}

发起请求
//发送 Post 请求 - json
_doJsonPost() async {
var url = Uri.parse('http://api.crap.cn/visitor/example/json.do');
var params = {
"id": "8989-dddvdg",
"name": "文章标题-JSON格式参数演示",
"brief": "快速入门json参数",
"category": "分类"
};
var json = jsonEncode(params);
var response = await http.post(url, body: json, headers: {
'content-type': 'application/json'
}); //设置content-type为application/json
if (response.statusCode == 200) {
//请求成功
_success(response);
} else {
//请求失败
_failed(response);
}
}
处理请求结果
//请求成功
_success(http.Response response) {
setState(() {
//返回结果的汉字用了 utf8 编码,所以需要对结果进行 utf8 解码
// resultShow = '请求成功:${_decodeUtf8(response.body)}';
//返回结果的汉字未用 utf8 编码,所以无需解码
resultShow = '请求成功:${response.body}';
});
}
//请求失败
_failed(http.Response response) {
setState(() {
resultShow =
"请求失败:errorCode: ${response.statusCode} errorMessage: ${response.body}";
});
}
//输入字母 stf
class extends StatefulWidget {
const ({super.key});
State<> createState() => _State();
}
class _State extends State<> {
Widget build(BuildContext context) {
return const Placeholder();
}
}
import 'package:flutter/cupertino.dart';
class HttpGetDemo extends StatefulWidget {
const HttpGetDemo({super.key});
State<HttpGetDemo> createState() => _State();
}
class _State extends State<HttpGetDemo> {
Widget build(BuildContext context) {
return const Placeholder();
}
}