文档章节

Flutter -------- Http库实现网络请求

切切歆语
 切切歆语
发布于 05/16 23:04
字数 310
阅读 11
收藏 0

第三方库 http实现网络请求,包含get,post

 

http库文档:https://pub.dev/packages/http

 

1.添加依赖



dependencies:
  http: ^0.12.0 #latest version

2.导入库



import 'package:http/http.dart' as http; //导入前需要配置

get

var data;

  _fetchGet() async {
    Map newTitle;
    final response =
        await http.get('https://jsonplaceholder.typicode.com/posts/1');
    final responseJson = json.decode(response.body);
    print("请求成功 ---------- "+responseJson.toString());
    newTitle = responseJson;

    setState(() {
      data = newTitle['title'];
      print("title====" + data);
    });
  }

post

void _httpPost() async {
    //头部
    var headers = Map<String, String>();
    headers["loginSource"] = "IOS";
    headers["useVersion"] = "3.1.0";
    headers["isEncoded"] = "1";
    headers["bundleId"] = "com.nongfadai.iospro";
    headers["loginSource"] = "IOS";
    headers["Content-Type"] = "application/json";

    //参数

    Map params = {'v': '1.0','month':'7','day':'25','key':'bd6e35a2691ae5bb8425c8631e475c2a'};

    // 嵌套两层都可以,但是具体哪个好还有待确认????
    var jsonParams = utf8.encode(json.encode(params));
    // var jsonParams = json.encode(params);

    var httpClient = http.Client();

    var uri = Uri.parse("http://api.juheapi.com/japi/toh");

    http.Response response =
    await httpClient.post(uri, body: jsonParams, headers: headers);

    if (response.statusCode == HttpStatus.ok) {
      print('请求成功');
      print(response.headers);//打印头部信息
      print("post------${response.body}");
    } else {
      print('请求失败 code 码${response.statusCode}');
    }
  }

调用:

class HttpMain extends StatefulWidget {
  @override
  createState() => new HttpPage();
}

class HttpPage extends State<HttpMain> {

  @override
  Widget build(BuildContext context) {
    _fetchGet();
    _httpPost();
    return new MaterialApp(
      title: 'Fetch Data Example',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Fetch Data Example'),
        ),
        body: new Center(
          child: new Text("$data"),
        ),
      ),
    );
  }
}

控制台

get

 

post

 

© 著作权归作者所有

切切歆语
粉丝 20
博文 334
码字总数 229995
作品 0
杭州
程序员
私信 提问
移动端开发新趋势Flutter

该文章属于原创,转载请注明: https://www.jianshu.com/p/1a90adc09e99 介绍 是开发的新一代跨平台方案,可以实现写一份代码同时运行在iOS和Android设备上,并且提供很好的性能体验。使用作...

刘小壮
04/05
0
0
Flutter完整开发实战详解(二、 快速开发实战篇)

 作为系列文章的第二篇,继《Flutter完整开发实战详解(一、Dart语言和Flutter基础)》之后,本篇将为你着重展示:如何搭建一个通用的Flutter App 常用功能脚手架,快速开发一个完整的 Flutte...

恋猫月亮
2018/08/06
0
0
我看完227篇文章,总结出一份Flutter入门教程

2018年6月21日,Google在GTMC大会上发布了 Flutter preview 1。这标志着 Flutter 发展已经进入到一个新阶段,即将迎来 1.0 的稳定版本。 本文致力于整理Flutter的入门的文章。作为自己学习 ...

掘金官方
2018/07/04
0
0
Flutter仿写单读App介绍与总结

前言: Flutter在2018年里从Beta一直走到1.0版本,虽然暴露出1.0版本仍然有很多Bug、生态不完善、库少、某些功能实现不好等问题,但是关注它的人们依然热情很高,每天都有关于Flutter的新的东...

Domo
01/18
0
0
Flutter的需要与原生交互的一些常用库

转自: https://github.com/AweiLoveAndroid/Flutter-learning/blob/master/readme/Flutter%E7%9A%84%E9%9C%80%E8%A6%81%E4%B8%8E%E5%8E%9F%E7%94%9F%E4%BA%A4%E4%BA%92%E7%9A%84%E4%B8%80%E4......

飞翔的熊blabla
2018/10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redux

Redux概念 Redux = Reducer + Flux,数据层框架,将所有数据都存储到store中 Redux的工作流程 Antd的使用 安装npm install antd --save import 'antd/dist/antd.css'import { Input, Butto......

星闪海洋
今天
4
0
OSChina 周一乱弹 —— 你们谁看见了我的诺贝尔奖

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @脚板薯 :这么晚不睡只为找到一首歌,晚安。 ♫Say You Want Me♪ ♫Say You Want Me♪ - Augustana 手机党少年们想听歌,请使劲儿戳(这里)...

小小编辑
今天
507
17
我为什么要写微信公众号

埋一颗种子,细心呵护,静待她枝繁叶茂,葱郁参天 V2论坛上有个帖子【做程序员最重要的还是一定要有自己的作品】,作者写道: 能有一个作品和你的名字联系在一起,应当成为在职业生涯前期着意...

运维咖啡吧
今天
3
0
数据库

数据库架构 数据库架构可以分为存储文件系统和程序实例两大块,而程序实例根据不同的功能又可以分为如下小模块。 1550644570798 索引模块 常见的问题有: 为什么要使用索引 什么样的信息能成...

一只小青蛙
今天
5
0
PHP常用经典算法实现

<? //-------------------- // 基本数据结构算法 //-------------------- //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k){ if ( $low <= $high){ $mid = int......

半缘修道半缘君丶
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部