0

我想使用 dart 语言将 curl get 请求转换为 http 请求,curl 代码在那里:

在此处输入图像描述

这是我尝试实现的代码,它不采用所有参数:

     import 'package:http/http.dart' as http;

        void main() async {
          var params = {
            'ad_format': 'DESKTOP_FEED_STANDARD',
            'access_token': '<ACCESS_TOKEN>',
          };
          var query = params.entries.map((p) => '${p.key}=${p.value}').join('&');

          var res = await http.get('https://graph.facebook.com/v2.11/act_AD_ACCOUNT_ID/generatepreviews?$query');
          if (res.statusCode != 200) throw Exception('http.get error: statusCode=${res.statusCode}');
          print(res.body);
        }
4

1 回答 1

1

您缺少使用creative添加的查询参数--data-urlencode。此外,避免自己构建带有查询参数的 url。使用Uri类。

final params = {
  'ad_format': 'DESKTOP_FEED_STANDARD',
  'access_token': '<ACCESS_TOKEN>',
  'creative': jsonEncode({
    'object_story_spec': {
      // fill in the rest here..
    },
  }),
};
final uri = Uri.https('graph.facebook.com', '/v2.11/act_AD_ACCOUNT_ID/generatepreviews', params);

var res = await http.get(uri);
if (res.statusCode != 200) throw Exception('http.get error: statusCode=${res.statusCode}');
print(res.body);
于 2020-06-01T05:56:10.590 回答