Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能给出一个示例代码,说明如何在dart中向HttpServer对象添加请求处理程序吗?_Dart - Fatal编程技术网

有人能给出一个示例代码,说明如何在dart中向HttpServer对象添加请求处理程序吗?

有人能给出一个示例代码,说明如何在dart中向HttpServer对象添加请求处理程序吗?,dart,Dart,我对dart编程非常陌生,非常感谢您的帮助 void main() { var server = new HttpServer(); server.listen('127.0.0.1', 8080); server. addRequestHandler( accept(HttpRequest function) => acceptInput(request, response), handler); } 我想将下面的函数添加到请求处理程序中。 server.addr

我对dart编程非常陌生,非常感谢您的帮助

void main() {
  var server = new HttpServer();
  server.listen('127.0.0.1', 8080);
  server.
  addRequestHandler(
  accept(HttpRequest function) => acceptInput(request, response), handler);
 }
我想将下面的函数添加到请求处理程序中。 server.addrequestHandler() 我希望这样做,以便可以添加许多请求处理程序,包括一个用于WebSocket的请求处理程序 一个示例或教程将非常有用

为了简单起见,我想将每个处理程序保留在一个单独的函数中

void acceptInput(HttpRequest request,HttpResponse response){
  print(request.connectionInfo.toString());
  print(request.queryParameters.toString());
  response.outputStream.write('Hello dude'.charCodes);
  response.outputStream.close();
}

注意:我知道我的void主代码是错误的,我需要帮助来更正它,以便它包含acceptInput功能。

以下是用于提供文件和处理web套接字连接的web服务器的代码:


这回答了你的问题吗?

你应该在我的网站上查看一下,它是一个类似Express的web框架,可以放在一个文件中,因此很容易阅读

查看以查看每个方法的正确签名。这是addRequestHandler的API:

abstract addRequestHandler(
    bool matcher(HttpRequest request), 
    void handler(HttpRequest request, HttpResponse response)
)
第一个参数是是否应该处理请求,而第二个参数是在匹配器为true时处理请求的处理程序

因此,Dart中的Http应用程序如下所示:

var server = new HttpServer();

server.addRequestHandler(
   (HttpRequest req) => true, 
   acceptInput);

server.listen('127.0.0.1', 8080);

事实上,你真的很接近

试试这个:

  var server = new HttpServer();
  server.addRequestHandler(
      (req) => req.path == '/save',
      handleSave);
  server.addRequestHandler(
      (req) => req.path == '/delete',
      handleDelete);
  server.defaultRequestHandler = new StaticFileHandler(basePath).onRequest;
其中
handleSave
handleDelete
只是函数,如:

handleSave(HttpRequest req, HttpResponse resp) {
  // ...
}

谢谢,如果我正在使用websocket,bool matcher将使用websocket,处理程序将是我创建的函数。感谢我所寻找的答案:)谢谢,这帮助我创建了不止一个httprequest处理程序。