Flutter开发 网络请求

HttpClient(dart自有)

1.get
点击请求按钮获取数据,解析数据获取单词展示到屏幕上。
请添加图片描述

class MyState extends State {String info = "暂无数据";List<Widget> texts = [];void initState() {super.initState();}Widget build(BuildContext context) {void parseJson(var body) {List<Widget> wList = [];List data = jsonDecode(body)["data"];for (int i = 0; i < data.length; i++) {print(data[i]["word"]);Text text = Text(data[i]["word"]);wList.add(text);}setState(() {texts = wList;});}void getData() async {String url ="https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/flutter";var httpClient = HttpClient();var request = await httpClient.getUrl(Uri.parse(url));var response = await request.close();var body = await response.transform(utf8.decoder).join();if (response.statusCode == 200) {setState(() {info = body;});parseJson(body);}}return Scaffold(appBar: AppBar(title: Text("登录"),centerTitle: true,backgroundColor: Colors.blue,foregroundColor: Colors.white,),body: ListView(children: texts),floatingActionButton: FloatingActionButton(onPressed: () {getData();},child: Text("请求"),),);}
}

2.post

  void postData() async {String url = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/q";HttpClient httpClient = HttpClient();HttpClientRequest request = await httpClient.postUrl(Uri.parse(url));// 设置请求头request.headers.set('Content-Type', 'application/json; charset=UTF-8');Map<String, dynamic> pMap = {"random:": "q"};request.write(jsonEncode(pMap));HttpClientResponse response = await request.close();// 检查响应状态码if (response.statusCode == HttpStatus.ok) {// 读取响应内容final String responseBody = await response.transform(utf8.decoder).join();print('POST 响应数据: $responseBody');} else {print('请求失败,状态码: ${response.statusCode}');}}

原生http请求库(插件)

导入依赖

dependencies:http: ^1.4.0

代码

import 'package:http/http.dart' as http;void httpGet() async {String url ="https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/flutter";var result = await http.get(Uri.parse(url));if (result.statusCode == HttpStatus.ok) {print(result.body.toString());}}//postvoid httpPost(var body) async {String url = "https://7a6396f8-09a1-4ade-b42a-f6db7776fb31.mock.pstmn.io/q";var result = await http.post(Uri.parse(url), body: body);if (result.statusCode == HttpStatus.ok) {print(result.body.toString());}else{print(result.statusCode);}}

解析xml

<books><book id="101"><title>XML入门指南</title><author>李四</author><price>39.90</price><publisher>科技出版社</publisher></book><book id="102"><title>Web开发实战</title><author>王五</author><price>59.00</price><publisher>电子工业出版社</publisher></book>
</books>
      xml.XmlDocument xmlDocument = xml.XmlDocument.parse(result.body);Iterable<xml.XmlElement> xmlElement = xmlDocument.findElements("books");Iterable<xml.XmlElement> books = xmlElement.single.findAllElements("book");books.forEach((element) {print(element.findElements("id").single.innerText);print(element.findElements("title").single.innerText);},);I/flutter ( 3477): 101
I/flutter ( 3477): XML入门指南
I/flutter ( 3477): 102
I/flutter ( 3477): Web开发实战

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/95695.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/95695.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode中用python调用matlab的函数(环境安装)

本实践适用于WIN11-x64和ubuntu22.04-x64系统&#xff0c;其余系统和架构未验证。 效果展示 1.环境要求 MATLAB Engine API for Python 的系统要求&#xff1a;参阅此官方文档MATLAB 与 Python 的版本兼容性&#xff1a;参阅此官方文档 2.安装步骤 安装Vscode&#xff08;不…

【数据分享】大清河(大庆河)流域上游土地利用

而今天要说明数据就是大清河&#xff08;大庆河&#xff09;流域上游土地利用。数据介绍大清河&#xff0c;又称大庆河&#xff0c;作为海河流域的重要支流&#xff0c;其流域上游地区不仅是区域水资源调控的关键节点&#xff0c;更是生态保护与经济发展的重要载体。以下从地理…

图论——Djikstra最短路

原理解释 首先解释一下它大概的应用场景以及原理&#xff1a;现在有这么一张图&#xff0c;图上各点之间都有一定的边权或者说是距离。给定你一个起点&#xff08;例如点1&#xff09;&#xff0c;让你求这个点到图上所有点的最短距离是多少&#xff1f; 这个问题比较平常&…

kafka初步介绍

Kafka角色介绍TopicTopic主题的意思&#xff0c;消费者必须指定主题用于的消息发送&#xff0c;生产者也必须指定主题用于消息的接收。topic只是逻辑上的划分。partitionpartition是分区的意思&#xff0c;他的主要作用是将发送到一个topic的数据做一个划分。如果有4个partitio…

windows10的vs2019编译openssl静态库备忘

1、下载安装openssl源码2、官网下载安装activeperl或Strawberry Perl。官网下载慢&#xff0c;网盘找找。使用中activeperl有些异常提示、缺模块&#xff0c;最后使用了Strawberry Perl。3、安装nasm。powershell使用choco install nasm -y 即可。powershell使用cd命令打开当前…

学习笔记与效率提升指南:编程、记忆与面试备考

在学习与工作中&#xff0c;高效的记录习惯、针对性的记忆方法和实用的技能储备&#xff0c;是提升效率的关键。本文结合编程学习、面试备考和英语单词积累&#xff0c;整理一套可落地的学习思路&#xff0c;尤其适合编程初学者。 一、学习核心原则&#xff1a;高效优先&#x…

顺丰面试题

1. 你擅长处理哪类问题推荐回答&#xff1a; "我比较擅长处理以下几类前端问题&#xff1a;性能优化&#xff1a;包括加载优化&#xff08;代码分割、懒加载&#xff09;、运行时优化&#xff08;减少重排重绘&#xff09;等复杂组件开发&#xff1a;如表单联动、可视化图…

Warmup_steps 设置经验

文章目录什么是 Warmup&#xff1f;实现示例科学设置 Warmup 的黄金法则直观例子什么是 Warmup&#xff1f; Warmup 是一种学习率调度策略&#xff0c;在训练初期逐步增加学习率&#xff08;LR&#xff09;&#xff0c;而不是直接使用目标学习率。它解决了两个关键问题&#x…

vue一个超简单的菜单栏伸缩示例

代码<template><div class"container"><!-- 左侧区域 --><div class"left-side" :style"{ width: leftWidth px }">左侧内容</div><!-- 右侧区域 --><div class"right-side" :style"{ l…

Spark学习(Pyspark)

&#xff08;1&#xff09;Spark基础入门 ①什么是Spark Spark是一款分布式内存计算的统一分析引擎。其特点就是对任意类型的数据进行自定义计算。Spark可以计算&#xff1a;结构化、半结构化、非结构化等各种类型的数据结构&#xff0c;同时也支持使用Python、Java、Scala、R以…

PDF压缩原理详解:如何在不失真的前提下减小文件体积?

与直接删除内容不同&#xff0c;良好的PDF压缩能在大幅减小体积的同时&#xff0c;较好地保留原有文字清晰度和图像质量&#xff0c;兼顾实用性与视觉效果。软件操作十分直观&#xff0c;仅需设置输入文件与输出路径&#xff0c;点击【开始压缩】按钮即可启动处理。画质压缩等级…

从应用场景看国产化FPGA潜力,紫光同创研讨会武汉·北京站回顾

八月&#xff0c;紫光同创 FPGA 技术研讨会先后在武汉、北京举行。作为紫光同创官方合作伙伴&#xff0c;ALINX 携紫光同创 FPGA 开发板及行业解决方案亮相&#xff0c;与来自通信、工业控制、医疗、图像视频、消费电子等领域的近 200 位行业专家齐聚一堂&#xff0c;通过主题演…

安卓APK包体优化全攻略

目录 正常默认打包流程&#xff08;以Android平台为例&#xff09; 查看编辑器打包日志 压缩图片 压缩网格模型 压缩贴图 压缩音频文件 只打64位包 最终大小 正常默认打包流程&#xff08;以Android平台为例&#xff09; 准备工作&#xff1a; 确保已安装最新版Unity H…

嵌入式学习日记(28)进程、线程

回收资源空间子进程回收策略1、wait阻塞回收&#xff1a;一般情况下父进程专门负责回收2、waitpid非阻塞回收&#xff1a;搭配轮询方式回收3、不回收&#xff1a;子进程任务一致执行4、异步回收&#xff1a;子进程结束后通知父进程进行回收exec 函数族三种调用外部程序的方式#i…

测试用例的一些事项

为什么要写测试用例&#xff1f;写测试用例的原因是为了避免遗漏测试&#xff0c;我们要根据给的文档将逻辑都表达出来&#xff0c;不能因为简单而不写&#xff0c;日后版本更新就知道自己哪些测了哪些没测。在没有文档的时候测试用例该怎么写&#xff1f;大家可以考虑安全测试…

当Java遇见AI:飞算驱动的个人博客介绍智能生成风暴

一、飞算JavaAI&#xff1a;重新定义个人开发的"智能魔法棒" 1.1 开发者需求变革&#xff1a;从"技术门槛"到"创意优先"的时代 在数字化浪潮席卷全球的今天&#xff0c;个人品牌建设已成为技术从业者、创业者乃至学生的刚需——无论是程序员分享…

小程序排名优化:用户行为数据背后的提升密码

用户在小程序中的每一次点击、每一次停留、每一次分享&#xff0c;都在产生着有价值的数据。这些看似零散的用户行为数据&#xff0c;其实隐藏着提升小程序排名的密码。平台在判定小程序排名时&#xff0c;用户行为数据是重要的参考依据&#xff0c;因为它直接反映了小程序对用…

【DSP28335 入门教程】深度解析中断系统:三级架构与响应机制

大家好&#xff0c;欢迎来到我们的 DSP28335 深度解析系列。在之前的实战中&#xff0c;我们通过 while(1) 循环和延时函数实现了各种控制&#xff0c;这种方式被称为轮询。但轮询就像一个焦急的门卫&#xff0c;需要不停地去检查每个门口是否有人&#xff0c;既浪费精力又效率…

代码随想录二刷之“字符串”~GO

1.344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; func reverseString(s []byte) {left : 0right : len(s)-1for left < right{s[left],s[right] s[right],s[left]leftright--}return } 感悟&#xff1a;还是go语法熟练程度的问题&#xff0c;需要注意的是&am…

(!万字血书!)文本预处理:NLP 版 “给数据洗澡” 指南

好吧&#xff0c;我承认我是个标题党&#xff01;(不这样你会点进来享受这篇 通俗易懂 的好文章吗&#xff1f;) 正经标题&#xff1a;文本预处理全流程:从基础到实践 &#xff08;屏幕前的你&#xff0c;帅气低调有内涵&#xff0c;美丽大方很优雅… 所以&#xff0c;求…