首页 > 解决方案 > Dart - 带有正文的 Http 获取请求

问题描述

我想使用 dart 发送一个带有 json body 的 HTTP GET 请求。我知道这是可能的,因为我过去做过,但找不到文件/重新编码。dart:http 之类的包不允许将正文与 GET 请求一起发送。

感谢帮助

标签: jsonhttpdartgetrequest

解决方案


我不确定问题出在哪里,但我为 Dart VM 制作了这个示例,我猜它可以满足您的需求:

import 'dart:convert';
import 'dart:io';

Future<void> main(List arguments) async {
  final response =
      await getCallWithBody('http://localhost:8080', {"Key": "Value"});
  response.forEach(print);
}

Future<List<String>> getCallWithBody(String address, Object object) async {
  final client = HttpClient();
  final request = await client.getUrl(Uri.parse(address));

  request.contentLength = -1;
  request.add(utf8.encode(json.encode(object)));
  await request.flush();

  return (await request.close())
      .transform(utf8.decoder)
      .transform(const LineSplitter())
      .toList();
}

推荐阅读