dart, shelf_route:使用多参数请求的' GET '方法中的路由名称是什么?



我的flutter应用程序使用GET方法向此API发送请求,并像这样使用queryParameters:

Map<String, dynamic> parameters = {'id': null};
parameters.updateAll((key, value) => Uri.encodeComponent(jsonEncode(value)));
String url= 'http://localhost:8080/test;
final Uri uri = Uri.parse(url).replace(queryParameters: parameters);
final http.Response response = await http.get(uri, headers: headers);

发送的URLhttp://localhost:8080/test?id=null

我在服务器端的路由是:

final _route = shelf_router.Router()
..get("/test<id>", (Request request, String id) {
return Response.ok('ok');
})
..all('/<ignored|.*>', (Request request) {
return Response.notFound('notFound');
});

但是我的请求总是从flutter应用程序到all('/<ignored|.*>', (Request request){ ... }路由。我试图将get("/test<id>", (Request request, String id){ ... }中的路由名称从"/test<id>"更改为"/test<id>","/test?<id>","/test?id<id>""/test?id=<id>",但没有工作。

正确的路由名称是什么?

我想使用n个参数的路由(通过使用request.params[ ... ]获取这些参数)。做这个的路由名是什么?

天哪,我错过了这个。请使用"/test".

参数为request.url.queryParameters

的例子:

..get("/test", (Request request) {
Map<String, dynamic> parameters = {...request.url.queryParameters};
parameters.updateAll((key, value) => jsonDecode(Uri.decodeComponent(value)));
print(parameters); //{id: null}
return Response.ok('ok');
})

相关内容

  • 没有找到相关文章

最新更新