Dart语言:获取不带服务器端口的URI查询参数

Dart语言:获取不带服务器端口的URI查询参数,dart,uri,port,Dart,Uri,Port,Dart文档主要关注通过特定服务器端口处理HTTP请求。因此,如果服务器正在侦听端口4123,则可以向URI发送GET、POST或其他请求,如: http://www.somedomain.com:4123/?q=something 但是,将不会处理发送到服务器/域但未指定服务器端口的查询参数,如: http://www.somedomain.com/?q=something 那么,在不指定服务器端口的情况下,如何处理发送到服务器地址/域的查询参数呢 编辑1: 一些可能的解决方案是在主方法中

Dart文档主要关注通过特定服务器端口处理HTTP请求。因此,如果服务器正在侦听端口4123,则可以向URI发送GET、POST或其他请求,如:

http://www.somedomain.com:4123/?q=something
但是,将不会处理发送到服务器/域但未指定服务器端口的查询参数,如:

http://www.somedomain.com/?q=something
那么,在不指定服务器端口的情况下,如何处理发送到服务器地址/域的查询参数呢

编辑1:

一些可能的解决方案是在主方法中实现URI检查器,并检索查询(如果存在),如下所示:

导入“dart:html”; 真空总管{ //获取URI以检查其是否有任何参数。 var uri=uri.parsewindow.location.href; //检查URI中是否存在参数。 如果uri.queryParameters[q]!=null{ //获取参数内容并将其存储。 var queryParamContent=uri.queryParameters[q]; //检查参数内容是否为空。 如果queryParamContent.isNotEmpty{ //对查询参数执行一些操作。 }否则{ //警告用户有关空查询的信息。 } }否则{ //没有什么有趣的东西可以签入URI。 } }
如果没有端口无法工作,请在创建错误报告


作为一种解决方法,您可以使用端口80,这是未设置特定端口时的默认值。

Günter,这不是应用程序的预期行为吗?我的意思是,如果服务器正在侦听端口4123,则只处理发送到此端口的请求。我想要的是让我的服务器端应用程序处理那些发送到我的地址而没有端口规范的查询。除了将侦听端口设置为80之外,还有其他方法吗?我不确定您试图实现什么。没有端口就没有请求。如果不设置端口,则使用协议的默认端口。每个标准化协议都有一个默认端口。对于HTTP,默认端口是80。是的,你说得对。但问题是,将服务器设置为在端口80上侦听可能会使其工作得更好,例如,因为通常的浏览器功能会发送正常的GET请求。那么港口预订呢?我认为在已经运行web服务器的服务器上不可能侦听端口80。最好是通过某种方式从无端口URI读取查询参数,并将其作为内部请求路由到服务器。这是可能的还是解决方法太多?当您已经有一台服务器在端口80侦听时,其他服务器无法在此端口侦听。您可以做的是在端口80上设置转发服务器/代理,根据URL将请求转发到侦听其他端口的服务器。这是经常使用的,但本主题与软件开发无关。你可以看看,或者其他一些服务器管理论坛来获得更详细的信息。你觉得怎么样?