标签: dart-io

如何判断HttpResponse是否已经关闭?

使用Dart的dart:io库,如何判断是否HttpResponse已经关闭?

我在API文档中找不到提示:http://api.dartlang.org/docs/releases/latest/dart_io/HttpResponse.html

dart dart-io

5
推荐指数
1
解决办法
107
查看次数

Dartium上没有内置库'dart:io'

我不知道问题出在哪里.将SystemCheck类导入主Dart文件时会出现此错误.

SystemCheck类:

import 'dart:io';
class SystemCheck{  
    getOperatingSystem() => Platform.operatingSystem;
    getUser() => Platform.localHostname;  
}
Run Code Online (Sandbox Code Playgroud)

在主文件中导入:

import 'cz.felguide.core/system.dart';
Run Code Online (Sandbox Code Playgroud)

dart dart-io

5
推荐指数
1
解决办法
1511
查看次数

Dart UDP客户端/服务器

我一直在尝试使用RawDatagramSocket来实现一个udp客户端,但我有点卡住了.我既不能发送也不能接收任何数据.据我所知,它是Dart中一个非常新的功能,除了tcp之外我找不到任何示例.

此外,我不知道是否有错误或任何东西,但似乎我只能绑定到localhost.当尝试绑定到另一台计算机IPV4地址时,我收到一个套接字异常(由于某些无效的IP地址而无法创建数据报套接字).我已经尝试了tcp套接字,连接并发送数据到c#中实现的tcp服务器(当dart代码在Mac OS上运行时)没有问题.

有没有人参与其中,可以提供一个很好的例子?

我的代码:

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

void main() {
  var data = "Hello, World";
  var codec = new Utf8Codec();
  List<int> dataToSend = codec.encode(data);
  //var address = new InternetAddress('172.16.32.73');
  var address = new InternetAddress('127.0.0.1');
  RawDatagramSocket.bind(address, 16123).then((udpSocket) {
    udpSocket.listen((e) {
      print(e.toString());
      Datagram dg = udpSocket.receive();
      if(dg != null) 
        dg.data.forEach((x) => print(x));

    });
    udpSocket.send(dataToSend, new InternetAddress('172.16.32.73'), 16123);
    print('Did send data on the stream..');
  });
}
Run Code Online (Sandbox Code Playgroud)

编辑

忙了几天但是在更全面地阅读了API规范之后,并且在下面的评论中得到了一些帮助,我了解到,由于它是一次性监听器,因此每次发送都必须将writeEventsEnabled设置为true.鉴于Günter,Fox32和Tomas的评论,其余的变化非常简单.

我还没有测试过将它设置为服务器但是我认为这只是绑定到首选端口的问题(而不是如下例中的0).服务器在Windows 8.1上以C#实现,而Dart VM在Mac OS X上运行.

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

void connect(InternetAddress …
Run Code Online (Sandbox Code Playgroud)

sockets udp dart dart-io

5
推荐指数
1
解决办法
3085
查看次数

在dart中逐行读取文件

我正在尝试用Dart语言处理大型文本文件.这些文件的大小超过100 MB.

我试过readAsLines和库的readAsLinesSync方法dart:io.每次我的内存耗尽:Exhausted heap space.

有没有办法像其他语言一样逐行或逐字节地读取文件?

dart dart-io

5
推荐指数
2
解决办法
1799
查看次数

如果我知道根目录和相对路径,如何获取文件?

在Dart中,如果我知道文件的根目录和相对路径,如何为它创建文件实例?

Directory root = new Directory("/root");
String relativePath = "logs/users.log";
Run Code Online (Sandbox Code Playgroud)

如何为创建文件实例users.log

在Java中,这非常简单:

new File(root, relativePath);
Run Code Online (Sandbox Code Playgroud)

但是在Dart中,我找不到那样的简单解决方案。

file dart dart-io

5
推荐指数
1
解决办法
850
查看次数

如何使用Dart的HttpClient上传PDF?

我需要将一个PDF文件发布到一个远程REST API,我不能为我的生活找到它.无论我做什么,服务器都会响应我尚未将对象与file参数相关联.假设我有一个叫做PDF的文件test.pdf.这是我到目前为止所做的事情:

// Using an HttpClientRequest named req

req.headers.contentType = new ContentType('application', 'x-www-form-urlencoded');
StringBuffer sb = new StringBuffer();
String fileData = new File('Test.pdf').readAsStringSync();
sb.write('file=$fileData');
req.write(sb.toString());
return req.close();
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了几乎我write()对请求的数据的每个组合和编码,但无济于事.我尝试发送它codeUnits,我已经尝试使用a编码UTF8.encode,我尝试使用a编码它Latin1Codec,一切.我很难过.

任何帮助将不胜感激.

dart dart-io

5
推荐指数
1
解决办法
3580
查看次数

在使用 Flutter 进行单元测试期间,对 File 对象的操作从未完成

我正在为我的 Flutter 应用程序编写单元测试,但在读取 json 文件时遇到一些问题。我有一些 json 文件供我的 api 模拟类使用。每当我调用 File 对象上的方法时,它永远不会结束,但测试会继续执行,并以错误结束,因为它没有从文件对象接收数据。这很奇怪,因为只有当从小部件调用的提供程序调用模拟 api 方法时才会发生这种情况。如果我直接调用模拟 api 方法进行测试,则效果很好。\n我的应用程序的结构如下:WidgetScreen调用->提供商调用->mockApi。

\n\n

Widget LegislacaoScreen 从我的提供者调用方法 carregarLegislacao,该方法又从我的 mockApi 调用方法 getLegislacaoes,该方法从 json 文件读取并将结果返回给提供者,然后通知我的小部件。任何帮助表示赞赏。

\n\n

哦,我正在使用以下命令运行测试:flutter test test/my_test.dart

\n\n

这里有一些代码:

\n\n

LegislacaoScreen:

\n\n
class LegislacaoScreen extends StatefulWidget {\n  @override\n  _LegislacaoScreenState createState() => _LegislacaoScreenState();\n}\n\nclass _LegislacaoScreenState extends State<LegislacaoScreen>\n    with AutomaticKeepAliveClientMixin {\n  @override\n  void initState() {\n    super.initState();\n    Future.microtask(carregarDados);\n  }\n\n  @override\n  bool get wantKeepAlive => true;\n\n  Future<void> carregarDados({bool reset = false}) async {\n    try {\n      final legislacaoProvider =\n          Provider.of<LegislacaoProvider>(context, listen: false);\n\n      await legislacaoProvider.carregarLegislacao(\n …
Run Code Online (Sandbox Code Playgroud)

dart dart-io flutter flutter-test

5
推荐指数
0
解决办法
1091
查看次数

如何在dart控制台应用程序中禁用stdin echo

下面的示例将读取用户密码,但也以纯文本形式回显它,有没有办法解决这个问题?

Future<String> promptPassword() {
  var completer = new Completer<String>();
  var stream = new StringInputStream(stdin);
  stdout.writeString("Warning: Password will be displayed here until I find a better way to do this.\n");
  stdout.writeString("Watch your back...\n");
  stdout.writeString("GitHub password for $gituser: ");
  stream.onLine = () {
    var str = stream.readLine();
    stdin.close();
    completer.complete(str);
  };
  return completer.future;
}
Run Code Online (Sandbox Code Playgroud)

dart dart-io

4
推荐指数
1
解决办法
249
查看次数

Dart Stream的listen()没有调用onDone

我有一个带变压器的流,它融合UTF8.decoderLineSplitter.它工作得很好,但从不调用onDone参数中指定的函数.

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

void main(List<String> arguments) {

  Stream<List<int>> stream = new File("input.txt").openRead();

  stream.transform(UTF8.decoder.fuse(const LineSplitter()))
      .listen((line) {
        stdout.writeln(line);            
      }, onDone: () {
          stdout.write("done");
      }).asFuture().catchError((_) => print(_));
}
Run Code Online (Sandbox Code Playgroud)

任何想法为什么永远不会被调用?

dart dart-io

4
推荐指数
2
解决办法
609
查看次数

如何创建/添加为每个请求添加默认标头的中间件

如何将中间件添加到架构管道,为每个请求添加默认HTTP头?

cors dart dart-io dart-shelf

4
推荐指数
1
解决办法
646
查看次数

标签 统计

dart ×10

dart-io ×10

cors ×1

dart-shelf ×1

file ×1

flutter ×1

flutter-test ×1

sockets ×1

udp ×1