我正忙着组建一个能够进行http POST的Dart命令行客户端.我知道我不能使用dart:html库并且必须使用dart:io
开始似乎很简单:
HttpClient client = new HttpClient();
client.getUrl(Uri.parse("http://my.host.com:8080/article"));
Run Code Online (Sandbox Code Playgroud)
问题是:正确的语法和顺序是什么使它HttpClient
做一个POST并能够将JSON编码的字符串传递到这篇文章?
tom*_*cki 10
使用http包和dart:convert
import 'package:http/http.dart' as http;
import 'dart:convert';
void main() {
var url = 'http://httpbin.org/post';
http.post(url, body: JSON.encode({'test': 'value'})).then((response) {
print("Response status: ${response.statusCode}");
print("Response body: ${response.body}");
});
}
Run Code Online (Sandbox Code Playgroud)
如需添加自定义标题,处理错误等,请参阅https://www.dartlang.org/dart-by-example/#making-a-post-request
我想向您推荐dio软件包,dio是Dart / Flutter的强大Http客户端,它支持拦截器,FormData,请求取消,文件下载,超时等。
dio非常易于使用:
执行获取请求:
response=await dio.get(url)
Run Code Online (Sandbox Code Playgroud)
执行POST请求:
response=await dio.post(url,data:{"id":12,"name":"wendu"})
Run Code Online (Sandbox Code Playgroud)
发送FormData:
FormData formData = new FormData.from({
"name": "wendux",
"file1": new UploadFileInfo(new File("./upload.pdf"), "upload1.pdf")
});
response = await dio.post("/info", data: formData)
Run Code Online (Sandbox Code Playgroud)
下载文件:
response=await dio.download("https://www.google.com/","./xx.html")
Run Code Online (Sandbox Code Playgroud)
更多细节请参考Github中的dio:https : //github.com/flutterchina/dio。
归档时间: |
|
查看次数: |
5454 次 |
最近记录: |