请完成Crawler
中的程序,实现对指定的网站的模拟登录。这个过程分为两个步骤:
注意:你可以使用浏览器或者Postman先对这些接口进行测试。测试用户名/密码是
xdml
/xdml
。
我们并没有列出完成这个需求的所有细节,因为我们希望能锻炼你自己搜索、阅读文档的能力——这对一个工程师是必不可少的技能。但是,我们仍然希望在你遇到解决不了的问题时能多思考、多问。祝你好运!
登录接口:http://47.91.156.35:8000/auth/login
发送一个HTTP POST请求到该接口,其Header包括:
- Content-Type: application/json
- User-Agent: 伪装成浏览器的User-Agent,否则可能会触发反爬虫系统
Body是:
{"username": "<给定的用户名>", "password": "<给定的密码>"}
提示:这样的JSON字符串可以通过以下方式生成:
Map<String,String> map = new HashMap<>();
map.put("username", <给定的用户名>);
map.put("password", <给定的密码>);
// 然后使用你喜欢的JSON序列化库把这个map序列化成一个JSON字符串
String json = ...
服务器若返回成功的响应,则会在HTTP响应中包含一个形如Set-Cookie: XXXXXXXXX; Path=/; HttpOnly
的Header。
在拿到第一步中的Set-Cookie: JSESSIONID=XXXXXXXXX; Path=/; HttpOnly
后,请使用Java代码获取其中的JSESSIONID=XXXXXXXXX
值。
向http://47.91.156.35:8000/auth
发送一个HTTP GET请求,其Header包括:
Cookie: JSESSIONID=XXXXXXXXX
返回得到的HTTP响应的Body字符串,它是一个JSON字符串。
祝你好运!
注意!我们只允许你修改以下文件,对其他文件的修改会被拒绝:
完成题目有困难?不妨来看看写代码啦的相应课程吧!
回到写代码啦的题目,继续挑战!