【问题标题】:Bizarre Dart compiler warnings on http libhttp lib上的奇怪Dart编译器警告
【发布时间】:2013-12-26 18:00:53
【问题描述】:

我正在尝试使用 Dart 的 http 库来发出简单的 HTTP GET 和 POST 请求:

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

void main() {
    String json = getSomeJSONString();
    http.post(url, body: json, encoding: Encoding.getByName("UTF-8")).then(onResponse);
}

void onResponse(Response response) {
    // Do something
}

当我通过pub build 运行时,我得到:

[Dart2JS on myapp-client|web/myapp_client.dart]:Building myapp-client......

[Dart2JS on myapp-client|web/myapp_client.dart]:
../../../../../sandbox/workbench/dart/dart/dart-sdk/lib/core/uri.dart:1133:17: Info: This is the method declaration.packages/http/src/utils.dart:41:42: Warning: Arguments do not match the expected parameters of 'encodeQueryComponent'.
static String encodeQueryComponent(String component) {
^^^^^^^^^^^^^^^^^^^^

[Dart2JS on myapp-client|web/myapp_client.dart]:pairs.add([Uri.encodeQueryComponent(key, encoding: encoding),

../../../../../sandbox/workbench/dart/dart/dart-sdk/lib/core/uri.dart:1133:17: Info: This is the method declaration.
static String encodeQueryComponent(String component) {
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

[Dart2JS on myapp-client|web/myapp_client.dart]:
packages/http/src/utils.dart:42:42: Warning: Arguments do not match the expected parameters of 'encodeQueryComponent'.
 Uri.encodeQueryComponent(value, encoding: encoding)]));
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[Dart2JS on myapp-client|web/myapp_client.dart]:
packages/http/src/utils.dart:41:58: Warning: No named argument 'encoding' found on method.
pairs.add([Uri.encodeQueryComponent(key, encoding: encoding),
 ^^^^^^^^
[Dart2JS on myapp-client|web/myapp_client.dart]:
packages/http/src/utils.dart:42:60: Warning: No named argument 'encoding' found on method.
 Uri.encodeQueryComponent(value, encoding: encoding)]));
 ^^^^^^^^
[Info in Dart2JS]:
Generated myapp-client|web/myapp_client.dart.js (246641 characters) in 0:00:09.640230
Built 14 files!

所以有几个问题:

  1. 这些警告是什么,为什么会收到这些警告?
  2. 我需要做什么才能让它们消失(修复它们)?
  3. 如果 http 库是 Dart 语言/核心的一部分,为什么我需要将它作为依赖项包含在内?

【问题讨论】:

    标签: http encoding dart compiler-warnings dart2js


    【解决方案1】:

    http 包依赖于dart:io,它不适用于 Web 客户端应用程序,因此您将无法使用它(这不是您的警告的来源,但调试它们没有多大意义当你无论如何都不能使用这个包时)。

    改用adaj 之类的东西。

    据我了解,http 包不是 Dart 核心库的一部分,尽管它是由 Dart 团队开发的。我不完全确定将库作为 Dart 核心的一部分的决定是什么(dart: 前缀)。在这种情况下,我认为这是因为dart:io 已经拥有http support

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-24
      相关资源
      最近更新 更多