【问题标题】:How to pass header and body in the HTTP call - Flutter如何在 HTTP 调用中传递 header 和 body - Flutter
【发布时间】:2021-12-15 17:20:34
【问题描述】:

我对 Flutter 比较陌生。我正在尝试使用 Flutter HTTP 包(以及标头和正文)进行 API 调用

例如,我如何在 Flutter HTTP 中进行相同的调用?

curl --location --request POST 'xyz.com' \
--header 'Referer: {{your app package name or website url}}' \
--header 'API-KEY: {{api-key}}' \
--data-urlencode 'vehicleId=MHxxxxxxxx' // how to pass this in http body

这是我到目前为止可以做的,到目前为止我做对了吗?如何传递正文内容?

Map<String, String> headers = {"Referer": "abcd.com", "API-KEY": "abcd12345"};
 var url = Uri.parse('xyz.com');
 var response = await post(url, headers: headers);

【问题讨论】:

  • Future&lt;http.Response&gt; createAlbum(String title) { return http.post( Uri.parse('https://jsonplaceholder.typicode.com/albums'), headers: &lt;String, String&gt;{ 'Content-Type': 'application/json; charset=UTF-8', }, body: jsonEncode(&lt;String, String&gt;{ 'title': title, }), ); }
  • await post(url, headers: headers, body: {'vehicleid': 'MHxxxxxx'}); 这是你想要的吗?抱歉,对 Curl 不太熟悉。我不知道--data-urlencode 做了什么
  • https://docs.flutter.dev/cookbook/networking/send-data
  • 这里也一样!这让我感到困惑(--data-urlencode),API 示例响应是由 API 提供者提供给我的,所以我不确定这是否是正确的方法 body: {'vehicleid': 'MHxxxxxx '}) @h8moss
  • 你可能会说你为什么不测试它但是API提供者在我将它集成到我的应用程序之前不会授权我对API数据的授权,所以无法测试它@h8moss

标签: flutter flutter-http


【解决方案1】:

要为 HTTP 调用创建标头,您可以这样做。希望对您有所帮助。

  Map<String, String> _header = <String, String>{
      "Referer": "abcd.com", 
      "API-KEY": "abcd12345"
  };

  final response = await http.post(
      Uri.parse(url),
      headers: _header,
      body: data
  );

【讨论】:

    猜你喜欢
    • 2022-10-21
    • 2018-08-05
    • 1970-01-01
    • 2015-11-23
    • 2020-12-04
    • 1970-01-01
    • 2021-04-10
    • 2022-11-12
    • 2019-01-06
    相关资源
    最近更新 更多