如何正确地将查询参数添加到DART http GET请求?try 将‘?param1=one&param2=Two’附加到我的url时,我无法获得正确响应的请求,但它在Postman中工作正常.以下是我的代码要点:

    final String url = "https://www.myurl.com/api/v1/test/";
    String workingStringInPostman = "https://www.myurl.com/api/v1/test/123/?param1=one&param2=two";

    Map<String, String> qParams = {
     'param1': 'one',
     'param2': 'two',
    };


   var res = await http
      .get(Uri.encodeFull("$url${widget.pk}/"),
      headers: {HttpHeaders.authorizationHeader: "Token $token", 
        HttpHeaders.contentTypeHeader: "application/json"},
);

${widget.pk}只是传递的整数值(请参见workingStringInPostman变量中的值123).

qParams是为了在需要URI参数时使用.

欢迎使用代码示例.

推荐答案

您将希望构造一个Uri并将其用于请求.像这样的东西

final queryParameters = {
  'param1': 'one',
  'param2': 'two',
};
final uri =
    Uri.https('www.myurl.com', '/api/v1/test/${widget.pk}', queryParameters);
final response = await http.get(uri, headers: {
  HttpHeaders.authorizationHeader: 'Token $token',
  HttpHeaders.contentTypeHeader: 'application/json',
});

https://api.dartlang.org/stable/2.0.0/dart-core/Uri/Uri.https.html

Flutter相关问答推荐

此同步方法会返回True还是False?

如何在Ffltter Chrome应用程序中使用webview_fltter_web显示自定义html而不是外部uri?

出现异常.RangeError(RangeError(index):无效值:有效值范围为空:0).分度误差

通过Ffltter应用程序与Docker服务器进行交互以进行身份验证

如何在Flutter 中创造以下效果

集装箱堆放和定位时的高度问题

按一下按钮即可更新 fl_chart

当键盘隐藏表单时该怎么办?

Flutter屏幕适配 - 在模拟器和真实手机上文本尺寸不同

用户文档 ID 与 Firestore 中的用户 ID 相同

splash_screen 没有被推送到登录页面

Flutter - firebase_auth_web 5.4.0 依赖于 intl ^0.17.0 但我必须使用更高版本 (intl ^0.18.0)

如何将行推到列的底部

在提供程序包更改通知程序中构建倒计时时钟

在 flutter 的另一个类中使用变量值

statefulWidget 无法进行所需更改的问题

从物理设备 Flutter 中移除 USB 后启动画面不可见?

主题:ThemeData() Flutter

Flutter NavigationBar 忽略我的背景 colored颜色

在 Flutter 中单击时切换按钮 colored颜色 没有改变