我正在创建一个使用LIFX的Flutter应用程序。我正在尝试遵循他们的说明here,但是我在向HTTP GET请求添加头部时遇到了问题。
TestHttpGet() async {
var httpClient = new HttpClient();
var header = "Bearer $token"; //token hidden
var url = 'https://api.lifx.com/v1/lights/all/state';
String result;
try {
var request = await httpClient.getUrl(Uri.parse(url));
request.headers.set("Authorization", header);
var response = await request.close();
if (response.statusCode == HttpStatus.OK) {
var json = await response.transform(UTF8.decoder).join();
print(json);
var data = JSON.decode(json);
result = data['brightness'].toString();
} else {
result =
'Error getting response:\nHttp status ${response.statusCode}';
}
} catch (exception) {
result = 'Failed parsing response';
}这与Error getting response: Http status 404一起返回。我尝试过request.headers .set .add [HttpHeaders.Authorization] = "header"的各种方法,结果都是404。任何建议都将不胜感激。
发布于 2019-06-26 00:19:51
您可以将Map<String, String>作为headers参数传递给http.get调用,如下所示:
await httpClient.get(url, headers: {
'Authorization': 'Bearer $token',
});发布于 2019-07-08 23:08:34
我相信dart使HttpHeader的所有字段都是小写的。
https://github.com/flutter/flutter/issues/16665
这样做的理由是“字段名不区分大小写”。(否则它不符合HTTP )
https://www.rfc-editor.org/rfc/rfc2616#section-4.2
如果您找到了解决此问题的方法,请告诉我。
https://stackoverflow.com/questions/49213396
复制相似问题