08.Dio基础_伪造请求头获取数据

上节课代码清除, 重新编写HomePage这个动态组件

开始写请求的方法

请求数据 。但是由于我们没加请求的头 所以没有返回数据

451就是表示请求错错误

创建请求头

注意这里是Request Headers这块才是请求头

把请求头全部复制过来。

然后给这些数据 都加上单引号,做成mapper的形式。

在VScode里面按住鼠标的alt键就可以多选

把这些字母的最前面和最后面都加上光标,然后鼠标再输入单引号

这样单引号就都加上了。

把这些参数都放在了单引号里面,并且后面加上了逗号

纠正一个地方,config文件夹是在lib的文件夹下面的

在我们的首页里面引入请求头的dart文件

然后只需要在请求之前设置请求头就可以了

返回请求的结果

最终代码

httpHeaders.dart

const httpHeaders={
'Accept': 'application/json, text/plain',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Content-Type': 'application/json',
'Cookie': '_ga=GA1.2.381584897.1534769652; Hm_lvt_022f847c4e3acd44d4a2481d9187f1e6=1552920445,1553872955,1553873168,1554093939; _gid=GA1.2.335717019.1554093939; SERVERID=3431a294a18c59fc8f5805662e2bd51e|1554094392|1554093939; Hm_lpvt_022f847c4e3acd44d4a2481d9187f1e6=1554094392; _gat=1',
'Host': 'time.geekbang.org',
'Origin': 'https://time.geekbang.org',
'Referer': 'https://time.geekbang.org/',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'
};

httpHeaders.dart

home_page.dart

import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import '../config/httpHeaders.dart'; class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
} class _HomePageState extends State<HomePage> {
String showText='还没有请求数据';
@override
Widget build(BuildContext context) {
return Container(
child: Scaffold(
appBar: AppBar(title: Text('请求远程数据'),),
body: SingleChildScrollView(
child: Column(
children: <Widget>[
RaisedButton(
onPressed: _jike,
child:Text('请求数据')
),
Text(showText)
],
),
),
),
);
} void _jike(){
print('开始想极客时间请求数据..........');
getHttp().then((val){
setState(() {
showText=val['data'] .toString();
});
});
} Future getHttp() async{
try {
Response response;
Dio dio=new Dio();
dio.options.headers=httpHeaders;//设置请求头
response=await dio.get('https://time.geekbang.org/serv/v1/column/newAll');
print(response);
return response.data;
} catch (e) {
return print(e);
}
}
}

home_page.dart

最新文章

  1. iOS-语法syntax
  2. NoSQL初探之人人都爱Redis:(2)Redis API与常用数据类型简介
  3. HttpClient4.5 SSL访问工具类
  4. OneThink学习笔记02----数据字典(即OneThink项目数据库里的表及其字段)
  5. 前台传到servlet的乱码问题要怎么处理
  6. HDU 4635 Strongly connected (强连通分量)
  7. Gym 100818I Olympic Parade(位运算)
  8. (转)Libevent(1)— 简介、编译、配置
  9. Unity3D游戏开发之开发游戏带来的问题
  10. Oracle wm_concat(列转行函数)实际使用
  11. configparser模块(拷贝)
  12. [日常] HTTP协议状态码
  13. Windows10安装Ubuntu子系统设置Python3测试环境
  14. Protobuf3 语法指南
  15. 2018牛客网暑假ACM多校训练赛(第十场)H Rikka with Ants 类欧几里德算法
  16. Github 最简单的认证方式 - Access Token
  17. Nextcloud私有云盘在Centos7下的部署笔记
  18. 当 1117 遇到 MLCC 后
  19. redis设计与实现-数据结构
  20. 多线程并发问题解决之redis锁

热门文章

  1. 取消CentOS 的图形界面 开机直接进入命令行模式(转)
  2. Hive merge(小文件合并)
  3. EasyDarwin开源流媒体云平台VS调试断点提示“还没有为该文档加载任何符号”的解决办法
  4. Congruent Matrices
  5. windows与mac共享文件
  6. Tomcat之catalina.out日志分割
  7. vue程序中组件间的传值方式
  8. Redis相关的内核参数解释与设置
  9. [RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】
  10. Codeforces Round #394 (Div. 2) B. Dasha and friends —— 暴力 or 最小表示法