使用用户名和密码发送POST请求并保存会话cookie

发布于 2021-01-31 15:26:14

发送带有用户名和密码的POST请求后,如何使用Jsoup保存cookie?还是我必须先将它们提供给连接对象然后保存?

关注者
0
被浏览
74
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    假设HTML表单如下所示:

    <form action="http://example.com/login" method="post">
        <input type="text" name="username" />
        <input type="password" name="password" />
        <input type="submit" name="login" value="Login" />
    </form>
    

    您可以发布它并获取cookie,如下所示:

    Response response = Jsoup.connect("http://example.com/login")
        .method(Method.POST)
        .data("username", username)
        .data("password", password)
        .data("login", "Login")
        .execute();
    Map<String, String> cookies = response.cookies();
    Document document = response.parse(); // If necessary.
    // ...
    

    您可以按以下要求将Cookie传递回去:

    Document document = Jsoup.connect("http://example.com/user")
        .cookies(cookies)
        .get();
    // ...
    

    或者,如果您知道单个Cookie的名称,则:

    Document document = Jsoup.connect("http://example.com/user")
        .cookie("SESSIONID", cookies.get("SESSIONID"))
        .get();
    // ...
    


推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看