如何通过 jsoup incase 弹出窗口登录?

How to login via jsoup incase of pop-up?

我正在开发一个需要通过 jsoup 中的弹出窗口登录的应用程序。

Here's the page。 打开后寻找如果您是Nebraska.gov订阅者,请登录。

我不知道在 jsoup 中作为 post 请求提供什么。

这是我到目前为止所做的。

String url = "https://www.nebraska.gov/sos/ccorp/";
Connection.Response response = Jsoup
    .connect(url)
    .timeout(30000)
    .method(Connection.Method.POST)
    .userAgent(
        "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0")
    .execute();

    Document document = response.parse(); // search results

本网站使用 Basic access authentication.

您可以通过以下方式发送此类请求:

package com.github.davidepastore.Whosebug33967883;

import java.io.IOException;

import org.apache.commons.codec.binary.Base64;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

/**
 * Whosebug 33967883 question.
 *
 */
public class App {

    public static void main(String[] args) throws IOException {
        String username = "foo";
        String password = "bar";
        String login = username + ":" + password;
        String base64login = new String(Base64.encodeBase64(login.getBytes()));
        String url = "https://www.nebraska.gov/sos/ccorp/";
        Connection.Response response = Jsoup
                .connect(url)
                .timeout(30000)
                .method(Connection.Method.GET)
                .userAgent(
                        "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0")
                .header("Authorization", "Basic " + base64login)
                .execute();

        Document document = response.parse(); // search results
    }
}

我的 pom.xml 文件中的依赖项(commons-codec for Base64 class):

<dependency>
    <!-- jsoup HTML parser library @ http://jsoup.org/ -->
    <groupId>org.jsoup</groupId>
    <artifactId>jsoup</artifactId>
    <version>1.8.3</version>
</dependency>
<dependency>
    <groupId>commons-codec</groupId>
    <artifactId>commons-codec</artifactId>
    <version>1.10</version>
</dependency>

你可以找到一个类似的问题here