乐闻世界logo
搜索文章和话题

如何将查询参数添加到 Dart-http 请求中?

1 个月前提问
1 个月前修改
浏览次数14

1个答案

1

在Dart中使用HTTP请求时,我们可以使用http包来发送网络请求。当需要向请求中添加查询参数时,可以手动构造URL,也可以使用Uri类来更方便地生成带有查询参数的URL。以下是如何使用Uri类添加查询参数到GET请求中的步骤和示例:

步骤 1: 添加 http 包依赖

首先,确保你的Dart项目中已经添加了http包的依赖。可以在你的pubspec.yaml文件中添加如下依赖:

yaml
dependencies: http: ^0.13.3

然后执行pub get来安装依赖。

步骤 2: 导入 http 包

在你的Dart文件中导入http包:

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

步骤 3: 使用 Uri 类构造带查询参数的 URL

你可以使用Uri类来构造一个带有查询参数的URL。这样可以避免手动拼接字符串,减少出错的可能性。

dart
var uri = Uri.https('www.example.com', '/search', {'query': 'dart', 'page': '1'});

这里,Uri.https的第一个参数是域名,第二个参数是路径,第三个参数是一个Map,代表查询参数。

步骤 4: 发送 HTTP 请求

使用构造好的uri来发送HTTP请求:

dart
var response = await http.get(uri); if (response.statusCode == 200) { print('Response body: ${response.body}'); } else { print('Request failed with status: ${response.statusCode}.'); }

这个例子中,我们发送了一个GET请求到www.example.com/search,并附带查询参数query=dartpage=1。然后检查响应状态码并打印响应内容或错误信息。

完整示例:

下面是一个完整的示例,展示如何构造带查询参数的请求并发送:

dart
import 'package:http/http.dart' as http; void main() async { var uri = Uri.https('www.example.com', '/search', {'query': 'dart', 'page': '1'}); var response = await http.get(uri); if (response.statusCode == 200) { print('Response body: ${response.body}'); } else { print('Request failed with status: ${response.statusCode}.'); } }

使用Uri类可以帮助我们更安全、更方便地管理URL及其查询参数,特别是当参数较多或者需要进行URL编码时。这种方法避免了因手动拼接字符串而引入的错误。

2024年8月5日 02:07 回复

你的答案