dart - Flutter-如何以这种格式发布 https?

标签 dart flutter

我想在 Dart 中发送 post 请求。 curl 看起来像这样。

curl -X POST "https://api-us.faceplusplus.com/facepp/v3/search" \
-F "api_key=<api_key>" \
-F "api_secret=<api_secret>" \
-F "face_token=c2fc0ad7c8da3af5a34b9c70ff764da0" \
-F "outer_id=facesetid"

我试过这样但是错误响应说

MISSING_ARGUMENTS: api_key

final String apiKey = API_KEY;
final String apiSecret = API_SECRET;
final String faceToken = FACE_TOKEN;
final String outerId = OUTER_ID;

final data = jsonEncode({
 'api_key': apiKey,
 'api_secret': apiSecret,
 'face_token': faceToken, 
 'outer_id': outerId
});

final http.Response request = await http.post(
  'https://api-us.faceplusplus.com/facepp/v3/search',
  body: data,
);


final String response = request.body;
final result = json.decode(response);
print(response);
print('------------------------');
print(result);

我错过了什么?
我怎样才能正确发布这个?

最佳答案

来自 man curl

 -F, --form <name=content>
              (HTTP) This lets curl emulate a filled-in form in which a user has pressed the submit button. This causes curl to POST data using the  Content-Type  multipart/form-data

https://pub.dartlang.org/documentation/http/latest/http/MultipartRequest-class.html

var uri = Uri.parse("http://pub.dartlang.org/packages/create");
var request = new http.MultipartRequest("POST", url);
request.fields['user'] = 'nweiz@google.com';
request.files.add(new http.MultipartFile.fromFile(
    'package',
    new File('build/package.tar.gz'),
    contentType: new MediaType('application', 'x-tar'));
request.send().then((response) {
  if (response.statusCode == 200) print("Uploaded!");
});

关于dart - Flutter-如何以这种格式发布 https?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52496953/

相关文章:

android - 运行 flutter 应用程序时出现异常。检索 ro.product.cpu.abi 的设备属性时出错

flutter - 未处理的异常 : A class was used after being disposed. - flutter

Flutter:如何使 ListView 对指针事件透明(但不是其非透明内容)?

Flutter:谷歌地图检测摄像头处于移动/不移动状态

html - 不支持获取应用程序/Dart 脚本

flutter - 每个应用启动时Flutter Stream只能运行一次

flutter - 如何在小部件中使用Future <bool>

flutter - Flutter和Phoenix channel 的问题

dart - 为什么MouseEvent.toElement返回Node?

android - 如何解决任务 ':app:compileFlutterBuildDebug' 执行失败