如果我尝试在Postman上运行,它会完美运行。看下面的图片。
您可以看到,下面是网址
路径参数为
sl
我在Flutter中的代码不起作用!
final _authority = "xx.yy";
final _path = "api/user/:slug"; // Tried to replace "api/user/slug" AND "api/user"
final _params = { "slug" : "govadiyo" };
final _uri = Uri.https(_authority, _path, _params);
print(Uri.encodeFull(_uri.toString()));
var response = await http.get(Uri.encodeFull(_uri.toString()), headers: {'Content-Type': 'application/json'});
print(response.body);
上面的代码有什么问题吗?
答案 0 :(得分:2)
看看这个答案。似乎问题与您的问题大致相同: https://stackoverflow.com/a/52824562/11620670
摆脱_path变量中的参数。
_uri变量似乎结构良好。
进行此小更改后,它应该可以工作。链接答案中的示例也是如此。
问候
答案 1 :(得分:1)
正如您正确注意到的那样,您需要一个路径变量,而不是查询参数(这意味着您的变量已成为url的一部分)。
您可以使用字符串插值将变量放入url(实际上,串联也可以)。该变量可能包含需要编码的字符。
final slug = 'govadiyo';
final url = Uri.encodeFull('api/user/${slug}');
print(url);
答案 2 :(得分:0)
2021 年像这样在 http.get() 中发送数据的最佳方式 您可以发送任何类型的数据,例如 Map、String 任何类型的数据,只需将数据放入 sendNotification 参数中
http://www.google.com/hitnotification?sender_name=fahad&email=fahad@gmail.com&receiver_id=2`
String sendNotification = "your data";
final uri = Uri.http('www.google.com','/hitnotification'+sendNotification);
await http.get(uri);