在 Flutter 中发送 API 请求。图片上传
Sending an API request in Flutter. Image Upload
我正在尝试使用 flutter 向 DeepApi Toonify 网站发送 API 请求,但我遇到了一些问题,因为我不知道如何去做。
这就是 toonify API 请求的样子
curl \
-F 'image=YOUR_IMAGE_URL' \
-H 'api-key:quickstart-QUdJIGlzIGNvbWluZy4uLi4K' \
https://api.deepai.org/api/toonify
这就是我现在拥有的。
var dioRequest = new Dio();
FormData formData = FormData.fromMap({
"file": await MultipartFile.fromFile(pickedFile.path,filename: pickedFile.path.split('/').last)
});
var response = await dioRequest.post(
'https://api.deepai.org/api/toonify',
data: formData,
options: Options(
headers: {
'api-key': 'MY API KEY'
}
)
);
我做错了什么?
我找到了适合我的解决方案。
这是使用文件发送经过身份验证的 API 请求的正确方法。
var request = http.MultipartRequest("POST", Uri.parse("<URL>"));
//add Headers
request.headers['Api-Key'] = 'Your API key';
//create multipart using filepath, string or bytes
var pic = await http.MultipartFile.fromPath("image", file.path);
//add multipart to request
request.files.add(pic);
var response = await request.send();
var responseData = await response.stream.toBytes();
var responseString = String.fromCharCodes(responseData);
print(responseString);
我正在尝试使用 flutter 向 DeepApi Toonify 网站发送 API 请求,但我遇到了一些问题,因为我不知道如何去做。
这就是 toonify API 请求的样子
curl \
-F 'image=YOUR_IMAGE_URL' \
-H 'api-key:quickstart-QUdJIGlzIGNvbWluZy4uLi4K' \
https://api.deepai.org/api/toonify
这就是我现在拥有的。
var dioRequest = new Dio();
FormData formData = FormData.fromMap({
"file": await MultipartFile.fromFile(pickedFile.path,filename: pickedFile.path.split('/').last)
});
var response = await dioRequest.post(
'https://api.deepai.org/api/toonify',
data: formData,
options: Options(
headers: {
'api-key': 'MY API KEY'
}
)
);
我做错了什么?
我找到了适合我的解决方案。 这是使用文件发送经过身份验证的 API 请求的正确方法。
var request = http.MultipartRequest("POST", Uri.parse("<URL>"));
//add Headers
request.headers['Api-Key'] = 'Your API key';
//create multipart using filepath, string or bytes
var pic = await http.MultipartFile.fromPath("image", file.path);
//add multipart to request
request.files.add(pic);
var response = await request.send();
var responseData = await response.stream.toBytes();
var responseString = String.fromCharCodes(responseData);
print(responseString);