Flutter中http库的一些基本请求

一、前言

在Flutter中进行网络请求通常使用http和dio来处理。http是dart开发的多平台网络请求,而dio是flutter中文社区开发的(https://flutterchina.club)。一般来说根据官网的教程来的话,会使用http来进行网络请求。这里对http的常用网络请求做一个基本的演示,以便达到实际开发中快速使用的目的。如果需要更多的用法可以下载http库的github代码,查看里面的测试用例

二、基本用法

1、post请求

post请求是开发中经常使用的请求,主要是可以携带一些参数在body里面,来防止用户获取信息。简单的示例代码如下(这个代码来自https://pub.flutter-io.cn/packages/http):

import 'package:http/http.dart' as http;

var url = 'https://example.com/whatsit/create';
var response = await http.post(url, body: {'name': 'doodle', 'color': 'blue'});
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');

print(await http.read('https://example.com/foobar.txt'));

2、get请求

import 'package:http/http.dart' as http;

var url = 'https://example.com/whatsit/create';
var header = {'Content-Type': 'application/json'};
var response = await http.get(url,headers:header);
print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');

3、文件上传

import 'package:http/http.dart';

  _uploadFile(String filePath) async{
    String url = "http://39.106.158.176:9010/user/upload_headpic?uid=725304943665217536&token=1";
    print("YM------->上传的路径:$url");
    var uri = Uri.parse(url);
    var request = new MultipartRequest("POST",uri);

    var multipartFile = await MultipartFile.fromPath("headpic",filePath);
    request.files.add(multipartFile);

    StreamedResponse response = await request.send();
    
    //这里返回值用到了Stream回调
    // response.stream.transform(utf8.decoder).listen((value){
    //   print("上传文件的结果:$value");
    // });
    
    //如果需要对获取的值进行处理可以采取这种方式
    // await for(String value in response.stream.transform(utf8.decoder)) {
    //     // return value;
    //   value += "+++";
    // }
    
    //如果只需要一个值的话,可以使用这种方式
    // String result = await response.stream.transform(utf8.decoder).first;
    
  }

三、参考链接

  1. github的http

    https://github.com/dart-lang/http

  2. flutter教程的网络请求

    https://flutter.cn/docs/cookbook#networking

  3. http的文件上传

    https://blog.csdn.net/Mr_Tony/article/details/113248964

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值