是的,所以我一直在做一些需要通过标头进行基本身份验证,并通过HTTP Post传递一些变量的工作.这是一个终端应用程序.
我的代码如下所示:
import 'package:http/http.dart' as http;
import 'dart:io';
void main() {
var url = "http://httpbin.org/post";
var client = new http.Client();
var request = new http.Request('POST', Uri.parse(url));
var body = {'content':'this is a test', 'email':'john@doe.com', 'number':'441276300056'};
request.headers[HttpHeaders.CONTENT_TYPE] = 'application/json; charset=utf-8';
request.headers[HttpHeaders.AUTHORIZATION] = 'Basic 021215421fbe4b0d27f:e74b71bbce';
request.body = body;
var future = client.send(request).then((response) => response.stream.bytesToString().then((value) => print(value.toString()))).catchError((error) => print(error.toString()));
}
我使用httpbin作为回音服务器,所以它告诉我要传递什么.如果我没有传递主体,或者如果我传递字符串作为主体,我的代码可以正常工作.
显然,这是因为http中的body属性.请求只接受字符串,我正在try 向它传递一个映射.
我可以将其转换为字符串,这可能会起作用,但我仍然认为我的代码可以改进.不是从语法的Angular 来看,也不是从它如何处理future 的Angular 来看,但是我不确定使用http.dart是不是正确的做法.
有人能给我指个方向吗?
提前谢谢.