Flutter实战视频-移动电商-08.Dio基础_伪造请求头获取数据
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
Flutter实战视频-移动电商-08.Dio基础_伪造请求头获取数据的更多相关文章
- Flutter移动电商实战 --(8)dio基础_伪造请求头获取数据
在很多时候,后端为了安全都会有一些请求头的限制,只有请求头对了,才能正确返回数据.这虽然限制了一些人恶意请求数据,但是对于我们聪明的程序员来说,就是形同虚设.这篇文章就以极客时间 为例,讲一下通过伪造 ...
- 08-Flutter移动电商实战-dio基础_伪造请求头获取数据
在很多时候,后端为了安全都会有一些请求头的限制,只有请求头对了,才能正确返回数据.这虽然限制了一些人恶意请求数据,但是对于我们聪明的程序员来说,就是形同虚设.这篇文章就以极客时间 为例,讲一下通过伪造 ...
- Flutter实战视频-移动电商-05.Dio基础_引入和简单的Get请求
05.Dio基础_引入和简单的Get请求 博客地址: https://jspang.com/post/FlutterShop.html#toc-4c7 第三方的http请求库叫做Dio https:/ ...
- Flutter实战视频-移动电商-06.Dio基础_Get请求和动态组件协作
博客地址: https://jspang.com/post/FlutterShop.html#toc-0ee 编写页面代码 创建动态组件HomePage,原来的代码是静态的我们这里就去掉就可以了. 然 ...
- Flutter实战视频-移动电商-07.Dio基础_POST请求的使用
07.Dio基础_POST请求的使用 越界问题解决 容器越界的问题,越界是因为键盘弹起的问题.如果键盘不弹起是不会越界 我们加一个滚动组件就可以解决. 这是技术胖视频中出现的越界的截图效果 这是我自己 ...
- Flutter实战视频-移动电商-34.列表页_小BUG的修复
34.列表页_小BUG的修复 当高粱酒的子类没有数据返回的时候就会报错. 解决接口空数据报错的问题 没有数据的时候,给用户一个友好的提示, 我们没有数据的时候还要告诉用户,提示一下他没有数据,在我们的 ...
- Flutter实战视频-移动电商-25.列表页_使用Provide控制子类-1
25.列表页_使用Provide控制子类-1 主要是二级分类的UI布局 1分15秒 生成我们的右侧动态类 定义list变量 开始写里面的子项,把每一个小的写了 再拼成一个大的 这样我们的小类就写完了 ...
- Flutter实战视频-移动电商-26.列表页_使用Provide控制子类-2
26.列表页_使用Provide控制子类-2 主要实现功能,点击一级分类,二级分类跟着变.这里主要用哦我们的provide 新建provide provide文件夹下创建:child_category ...
- Flutter实战视频-移动电商-27.列表页_现有Bug修复和完善
27.列表页_现有Bug修复和完善 小解决小bug 默认右侧的小类没有被加载 数据加载完成后,就list的第一个子对象传递给provide进行赋值,这样右侧的小类就刷新了数据 默认加载了第一个类别 调 ...
随机推荐
- 【转载】How to develop your own Boot Loader【怎么样开发自己的bootloader】
How to develop your own Boot Loader 怎么样开发自己的bootloader Table of content[目录] 1. Who may be interested ...
- 热烈庆祝UE4完全免费Free---GitHub的关联方式
热烈庆祝UE4完全免费Free---GitHub的关联方式 时间:2015-03-03 18:38:52 阅读:3007 评论:0 收藏:0 [点我收藏+] 标 ...
- Java内部类之间的闭包和回调详解
前言 闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自 ...
- JS控制input 文本框只允许输入汉字
onblur="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.set ...
- MVC——分页
添加类PageBar.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- Android-通过SlidingMenu高仿微信6.2最新版手势滑动返回(二)
转载请标明出处: http://blog.csdn.net/hanhailong726188/article/details/46453627 本文出自:[海龙的博客] 一.概述 在上一篇博文中,博文 ...
- 从S3中导入数据到Dynamodb
本节如果你已经从Dynamodb中导出过数据,而且导出的文件以及被存入S3.文件内部结构会在Verify Data Export File 中描写叙述. 我们称之前导出数据的原始表为source ta ...
- iOS开发工具篇-AppStore统计工具
本文转载至 http://mobile.51cto.com/hot-418183.htm 随着iOS开发的流行,针对iOS开发涉及的方方面面,早有一些公司提供了专门的解决方案或工具.这些解决方案或工具 ...
- Node.js安装及环境配置(windows)
1.Node.js简介 简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用 ...
- 九度OJ 1095:2的幂次方 (递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:913 解决:626 题目描述: Every positive number can be presented by the exponent ...