gpt4 book ai didi

rest - Dart URI : multiple query parameters with the same key

转载 作者:行者123 更新时间:2023-12-03 03:26:11 26 4
gpt4 key购买 nike

我正在使用 Mapquest directions API我的目标是在一堆 map 点(3 个或更多)之间创建一条路线。

这是“to”参数的 API 规范 of the endpoint that's used to fetch a route for a given set of points (对应目的地):

When the input format is key/value pairs, the ending location(s) of a Route Request. More than one to parameter may be supplied. This is used for single-line addresses only.

Refer to the Locations documentation on how to properly form locations in all formats, including JSON and XML.

据我所知,这意味着可以为一个查询指定多个“to”参数,例如“http://www.mapquestapi.com/directions/v2/route?from=40.65,73.95&to=40.87,-73.85&to=40.70,-73.56 。我对此是否正确?

所以假设我正确理解规范,我需要构建一个合适的 URI 将被分派(dispatch)到 http 库的实例 get方法。问题是它收到一个Map<String, String。构造函数中的查询参数,map表示唯一性。我如何使用 URI 构建这样的请求类(class)?

我试图通过仅检索 URI 的字符串表示形式来解决问题未指定 to 的实例键值对,只写连接的 to -s 在字符串的末尾,随后传递给 http.get .我错过的是 URI负责字符的转义,当 SDK 已经为我提供了 URI 时,我自己写这样的东西似乎是完全不合适的。类。

最佳答案

我不知道你的理解是否正确,但我可以告诉你如何多次创建具有相同查询参数的 URI。

Uri.parse函数确实不止一次接受相同的名称,但您正在尝试创建字符串,所以这没有用

要从原始数据创建 URI,构造函数 Uri有一个 queryParameters接受 Map<String, dynamic> 的参数其中值必须是单个 StringIterable<String> .所以,在你的情况下:

var request = Uri.parse("http://www.mapquestapi.com/directions/v2/route")
.resolveUri(Uri(queryParameters: {
"from": "40.65,73.95",
"to": ["40.87,-73.85", "40.70,-73.56"],
}));

如果您有一个查询部分多次包含相同的名称,那么您需要在 Uri 上使用特殊函数类来读取那些查询参数。默认 queryParameters getter 返回一个 Map<String, String>每个名字只能有一次。您可以使用 queryParametersAll取而代之。

关于rest - Dart URI : multiple query parameters with the same key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55919329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com