Flutter 14: 图解最基础的 http 请求方式

简介: 0 基础学习 Flutter,第十四步:网络请求了解下~

      小菜搭建了几个基本的小页面,现在需要添加其中的业务逻辑,这就必不可少的用到网络请求;Flutter 中提供了 dart.io 方式进行网络请求,不管是从请求方式还是实例都讲解的很清楚,使用方式也很简单。但是小菜在看大神们写的案例中很多直接用到了 Dart 中常用的原生 http 请求,小菜也尝试了一下。

集成应用

  1. 添加依赖,在 pubspec.yaml 中添加 http 依赖 http: ^0.11.3+17,之后 package get 同步;
  1. 在具体的 dart 文件中引入 http;import 'package:http/http.dart' as http; 这种写法很有意思,在 import 时直接定义为 as http,之后在文件中可以用 http 来操作,当然定义为其他名称也是可以的;
  2. http 请求操作,日常应用最多的为 post/get 请求,post 请求中需要传参 urlbody(键值对),通过 then 方式接收返回内容;get 请求中主要传入 url 参数,同时也可以传入请求头标题等 Accept,同样通过 then 方法接收返回内容;小菜测试 read 请求方式与 get 方式基本一致,只是对返回内容操作不同,get 的返回的全部内容包括状态值和数据内容,而 read 返回的内容直接为数据内容,小菜以为 read 方式更适合请求文件内容方式。
POST 请求
var url = "https://example.com/api/login?";
http.post(url, body: {'password':'e10adc3949ba59abbe56e057f20f883e', 'mobile':'13333333333'})
    .then((response) {
        print("post方式->status: ${response.statusCode}");
        print("post方式->body: ${response.body}");
    }
);
http -> post
GET 请求
http.get('https://example/getUserBaseInfo?sid=cs&user=13333333333')
    .then((onValue) {
        print("get方式->status: ${onValue.statusCode}");
        print("get方式->body: ${onValue.body}");
    }
);
http -> get
READ 请求
http.read('https://example/getUserBaseInfo?sid=cs&user=13333333333'),headers: {"Accept": "application/json"})
    .then((onValue) {
        print("read方式->$onValue");
});
http -> read

异步处理

      涉及到网络请求,就必不可少的需要异步处理,Flutter 提供了便利的异步操作方法 async + await;将耗时的不需要长时运算的方法先执行,之后在执行 await 中耗时操作;小菜建议在使用 asyncawait 方式时,要成对出现,await 执行在 async 方法内。

login() async {
    await http.post(url, body: {'password':'e10adc3949ba59abbe56e057f20f883e', 'mobile':'13333333333'})
    .then((response) {
        print("post方式->status: ${response.statusCode}");
        print("post方式->body: ${response.body}");
        }
    );
}
// 调用登录方法
login();

测试源码

login() async {
  await http.post('https://example.com/api/login?', body: {
    'password': 'e10adc3949ba59abbe56e057f20f883e',
    'mobile': _phonecontroller.text
  }).then((response) {
    if (response.statusCode == 200) {
      router.navigateTo(context, '/home/${response.body}');
    } else {
      showDialog<Null>(
        context: context,
        barrierDismissible: false,
        child: new AlertDialog(
          title: new Text(
            '温馨提示',
            style: new TextStyle(
              color: Colors.black54,
              fontSize: 18.0,
            ),
          ),
          content: new Text('您输入的用户名密码不存在!'),
          actions: <Widget>[
            new FlatButton(
                onPressed: () {
                  Navigator.pop(context);
                },
                child: new Text('确定')),
          ],
        ),
      );
    }
  });
}

onTap() {
    login();
}

      小菜刚接触 Flutter 时间不长,还有很多不清楚和不理解的地方,如果又不对的地方还希望多多指出!

目录
相关文章
|
11月前
|
JSON 监控 API
掌握使用 requests 库发送各种 HTTP 请求和处理 API 响应
本课程全面讲解了使用 Python 的 requests 库进行 API 请求与响应处理,内容涵盖环境搭建、GET 与 POST 请求、参数传递、错误处理、请求头设置及实战项目开发。通过实例教学,学员可掌握基础到高级技巧,并完成天气查询应用等实际项目,适合初学者快速上手网络编程与 API 调用。
1056 130
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
1043 65
|
12月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
921 2
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
2610 83
|
Go 定位技术
Golang中设置HTTP请求代理的策略
在实际应用中,可能还需要处理代理服务器的连接稳定性、响应时间、以及错误处理等。因此,建议在使用代理时增加适当的错误重试机制,以确保网络请求的健壮性。此外,由于网络编程涉及的细节较多,彻底测试以确认代理配置符合预期的行为也是十分重要的。
465 8
|
Go
在golang中发起http请求以获取访问域名的ip地址实例(使用net, httptrace库)
这只是追踪我们的行程的简单方法,不过希望你跟着探险家的脚步,即使是在互联网的隧道中,也可以找到你想去的地方。接下来就是你的探险之旅了,祝你好运!
703 26
|
JSON API 数据安全/隐私保护
使用curl命令在服务器上执行HTTP请求
总的来说,curl是一个非常强大的工具,它可以让你在命令行中发送各种类型的HTTP请求。通过学习和实践,你可以掌握这个工具,使你的工作更加高效。
1393 30
|
JSON JavaScript API
Python模拟HTTP请求实现APP自动签到
Python模拟HTTP请求实现APP自动签到
|
数据采集 JSON Go
Go语言实战案例:实现HTTP客户端请求并解析响应
本文是 Go 网络与并发实战系列的第 2 篇,详细介绍如何使用 Go 构建 HTTP 客户端,涵盖请求发送、响应解析、错误处理、Header 与 Body 提取等流程,并通过实战代码演示如何并发请求多个 URL,适合希望掌握 Go 网络编程基础的开发者。

热门文章

最新文章