GET 请求
向服务端发起请求用于从服务端读取数据 。浏览器发出的GET只能由一个url触发。GET上要在url之外带一些参数就只能依靠url上附带querystring。
使用场景
例如: https://host:port/path?querystring=value1&queryString=value2
https://tieba.baidu.com/f?ie=utf-8&kw=%E5%A4%A7%E4%BD%AC&fr=search
https://tieba.baidu.com/f?ie=utf-8&kw=%E5%A4%A7%E7%A5%9E&fr=search
https://tieba.baidu.com/f?ie=utf-8&kw=%E7%BE%8E%E5%A5%B3&fr=search
https://tieba.baidu.com/f?ie=utf-8&kw=%E5%B8%85%E5%93%A5&fr=search
class MyHomePage extends StatefulWidget {
MyHomePage({Key? key, required this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State {
void _testDioHeadReq() async {
Response _headReq = await Dio().get(‘https://www.baidu.com/’);
print(‘HEAD请求获取到到 数据:${_headReq.data}\n’);
print(‘HEAD请求获取到到 extra:${_headReq.extra}\n’);
print(‘HEAD请求获取到到 headers:${_headReq.headers}\n’);
print(‘HEAD请求获取到到 isRedirect:${_headReq.isRedirect}\n’);
print(‘HEAD请求获取到到 statusCode:${_headReq.statusCode}\n’);
print(‘HEAD请求获取到到 statusMessage:${_headReq.statusMessage}\n’);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
floatingActionButton: FloatingActionButton(
onPressed: _testDioHeadReq,
tooltip: ‘TestDioHeadReq’,
child: Icon(Icons.add),
),
);
}
}
HEAD
向服务端发起请求用于从服务端读取数据 。与GET的区别就是不会获取到数据 (响应体) , 只会获取到请求头 (header) 、状态码 (statusCode)、提示信息 (statusMessage) 等 响应头
HEAD请求常常被忽略,但是能提供很多有用的信息,特别是在有限的速度和带宽下。主要有以下特点:只请求资源的首部 、检查超链接的有效性 、检查网页是否被修改
多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等
Response _headReq = await Dio().head(‘https://www.baidu.com/’);
print(‘HEAD请求获取到到 数据:${_headReq.data}\n’);
print(‘HEAD请求获取到到 extra:${_headReq.extra}\n’);
print(‘HEAD请求获取到到 headers:${_headReq.headers}\n’);
print(‘HEAD请求获取到到 isRedirect:${_headReq.isRedirect}\n’);
print(‘HEAD请求获取到到 statusCode:${_headReq.statusCode}\n’);
print(‘HEAD请求获取到到 statusMessage:${_headReq.statusMessage}\n’);