HTTP使用dart发布python文件
我想在dart中通过http post发送一个python文件。我可以用以下方法来做:HTTP使用dart发布python文件,python,http,curl,dart,post,Python,Http,Curl,Dart,Post,我想在dart中通过http post发送一个python文件。我可以用以下方法来做: curl -X POST -F 'file=@/home/user/file.py' http://192.168.80.1:9888/dir/file.py 我也可以用python这样做: import requests url = 'http://192.168.80.1:9888/dir/file.py' files = {'file': open('file.py', 'rb')} print(f
curl -X POST -F 'file=@/home/user/file.py' http://192.168.80.1:9888/dir/file.py
我也可以用python这样做:
import requests
url = 'http://192.168.80.1:9888/dir/file.py'
files = {'file': open('file.py', 'rb')}
print(files)
r = requests.post(url, files=files)
但在dart,我无法发送邮件。我已经尝试了几种方法,但目前正在进行:
import 'package:http/http.dart' as http;
import 'dart:io';
void main(List<String> arguments) async {
var response;
var file;
var url = 'http://192.168.80.1:9888/dir/file.py';
file = File('file.py').readAsStringSync();
var files = {'file': file};
response = await http.post(url, body: files);
}
我知道服务器是通过CURL和python工作的。如何使用dart模拟CURL/python中的功能?我能够通过POST使用dart发送python文件
import'包:dio/dio.dart'作为dio;
Future FormData3()异步{
返回dio.FormData.fromMap({
“文件”:等待dio.MultipartFile.fromFile(
“files/file.py”,
文件名:“file.py”,
),
});
}
Future sendFile()异步{
反应;
response=wait dio.dio().post('http://192.168.80.1:9888/dir/file.py',
数据:等待FormData2(),onSendProgress:(已接收,总计){
如果(总计!=-1){
打印((已接收/总计*100).ToStringGasFixed(0)+'%');
}
},
选项:dio。选项(
方法:“POST”,
responseType:dio.responseType.plain,
));
返回响应;
}
void main()异步{
response=wait sendFile();
}
似乎回答了这个问题。我只是在运行dart,而不是上面的问题所涉及的颤振。
ClientException (Connection closed before full header was received)
import 'package:dio/dio.dart' as dio;
Future<dio.FormData> FormData3() async {
return dio.FormData.fromMap({
'file': await dio.MultipartFile.fromFile(
'files/file.py',
filename: 'file.py',
),
});
}
Future<dio.Response> sendFile() async {
dio.Response response;
response = await dio.Dio().post('http://192.168.80.1:9888/dir/file.py',
data: await FormData2(), onSendProgress: (received, total) {
if (total != -1) {
print((received / total * 100).toStringAsFixed(0) + '%');
}
},
options: dio.Options(
method: 'POST',
responseType: dio.ResponseType.plain,
));
return response;
}
void main() async {
response = await sendFile();
}