我的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);
发送的URL
为http://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[ ... ]
获得这些参数)。
1条答案
按热度按时间toe950271#
天啊,我错过了这个,就用
"/test"
吧。参数为
request.url.queryParameters
例如: