request - Dart - 使用 cookie 请求 GET
问题描述
我正在尝试发出获取请求,但我需要放置 cookie。
使用 curl 作品:
curl -v --cookie "sessionid=asdasdasqqwd" <my_site>
但是下面的函数并没有带来任何东西
import 'dart:async';
import 'package:http/http.dart' as http;
import 'package:html/parser.dart' as parser;
import 'package:html/dom.dart';
...
parseHtml() async {
http.Response response = await http.get (
<my_site>,
headers: {"sessionid": "asdasdasqqwd"}
);
Document document = parser.parse (response.body);
print(document.text);
}
有什么方法可以将 cookie 放在 Dart 中的 get 请求上?
解决方案
为了补充答案:
import 'dart:convert';
import 'dart:io';
import 'package:html/dom.dart';
import 'package:html/parser.dart' as parser;
parseHtml() async {
HttpClient client = new HttpClient();
HttpClientRequest clientRequest =
await client.getUrl(Uri.parse("http://www.example.com/"));
clientRequest.cookies.add(Cookie("sessionid", "asdasdasqqwd"));
HttpClientResponse clientResponse = await clientRequest.close();
clientResponse.transform(utf8.decoder).listen((body) {
Document document = parser.parse(body);
print(document.text); // null
for(Element element in document.getElementsByClassName('your_class')) {
...
}
});
}
上面的代码运行良好,下面的代码运行良好:
parseHtml() async {
http.Response response = await http.get(
'http://www.example.com/',
headers: {'Cookie': 'sessionid=asdasdasqqwd'}
);
Document document = parser.parse(response.body);
print(document.text); // null
for(Element element in document.getElementsByClassName('your_class')) {
...
}
}
推荐阅读
- python - Python:如何删除字典中一个键的重复值?
- spring-boot - springBoot ConcurrentKafkaListenerContainerFactory 如果下游宕机了怎么办?
- pandas - Pandas 比较 - 如何比较 2 个单独数据框中的 2 个日期列
- visual-c++ - 如何在 visaul-Studio 2015 中注释掉多行注释?
- python - 如何在python中将dec转换为hex?
- android - 在 kotlin 中获取 mapbox 的位置权限失败
- python - 如何从列表中删除并排存在于另一个列表中的项目?
- java - 生成具有唯一名称的文件并将数据写入其中
- android - 使用改造从服务器获取数据后如何将数据存储在房间数据库中
- ios - iOS xcode 11 新项目多个错误