dart - 有什么办法可以将数据从服务器发送到dart的客户端

标签 dart

我正在做客户端服务器应用程序(通过带有postgrelsql的浏览器)。我创建了服务器,它在一个端口上运行。如何从服务器到客户端获取数据。
客户端:

   req=new HttpRequest();
   req.open('get', 'http://127.0.0.1:8082/');
   var rr=req.send();
   print(rr);

服务器端:
      HttpServer server = await HttpServer.bind('127.0.0.1', 8082);

      await for (HttpRequest request in server) {
      request.response.headers.add("Access-Control-Allow-Origin", "*");
      request.response.headers.add("Access-Control-Allow-Methods",      "POST,GET,DELETE,PUT,OPTIONS");
      request.response.write(await consoledatabaseconnection.someList());
      handleRequest(request);
      request.response.close();
    }
   void handleRequest(HttpRequest request) {
  try {
    if (request.method == 'GET') {
      print('request get');

      request.response.write('data form server');

    } else {
      print('request others');
    }
  } catch (e) {
    print('Exception in handleRequest: $e');
  }
  print('Request handled.');
}

在服务器端如何返回数据。

最佳答案

服务器端代码

main(List<String> arguments) async {
  HttpServer.bind('localhost', 8085).then((server) {
    server.listen((HttpRequest request) {
      request.response.headers.add("Access-Control-Allow-Origin", "*");
      request.response.headers
          .add("Access-Control-Allow-Methods", "POST,GET,DELETE,PUT,OPTIONS");
      request.response.headers.add('Access-Control-Allow-Headers',
          'Origin, X-Requested-With, Content-Type, Accept,application/x-www-form-urlencoded');

      if (request.method == "POST") {
        List<int> dataBody = new List<int>();
        request.listen(dataBody.addAll, onDone: () async {
          query_dy = new String.fromCharCodes(dataBody);
          request.response.write(await databaseconnection('your response code here'));
          request.response.close();
        });
      }
    });
  });
}

客户端代码
req =新的HttpRequest();
req.open('post', 'http://localhost:8085');

req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

req.send('{"username": "$username","password": "$password"}');

req.onReadyStateChange.listen((_) {
  if (req.readyState == HttpRequest.DONE &&
      (req.status == 200 || req.status == 0)) {
        //you can get response form server here
    String responsefrmserver = req.responseText;

    } 
  }
});

关于dart - 有什么办法可以将数据从服务器发送到dart的客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629921/

相关文章:

firebase - Firebase身份验证未保存当前用户

sqlite - 我如何使用 sqflite 并仅在 flutter 上查询 1 行数据

flutter - 等待回调在Dart/Flutter中完成

constructor - 可以将命名参数与速记构造函数参数组合吗?

user-interface - Flutter ListView.builder - 如何以编程方式跳转到某个索引

Flutter - 存储经过身份验证的用户详细信息

flutter - 如何在 Flutter 中为不同的区域设置不同的字体

dart - 设置所选的纸制标签

android - 如何仅显示listview.builder的选定索引的进度/进度指示器?

dictionary - 在 Dart 中使用 ifAbsent 映射更新方法