Jsoup возвращает запрашиваемую страницу - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь разобрать страницу после контрольного запроса, но не могу получить правильный ответ от Jsoup.

Вот мой код:

Сначала я сделал запрос на получениеСтраница параметров и файлы cookie:

Connection.Response response = Jsoup.connect("https://nfce.set.rn.gov.br/portalDFE/NFCe/")
            .method(Connection.Method.GET)
            .execute();



    Map<String,String> cookies = response.cookies();
    Document doc = response.parse();
    String param1 = doc.getElementById("__LASTFOCUS").attr("value");
    String param2 = doc.getElementById("__EVENTTARGET").attr("value");
    String param3 = doc.getElementById("__EVENTARGUMENT").attr("value");
    String param4 = doc.getElementById("__VIEWSTATE").attr("value");
    String param5 = doc.getElementById("__VIEWSTATEGENERATOR").attr("value");
    String param6 = doc.getElementById("__EVENTVALIDATION").attr("value");

Второй a сделал второй запрос, вставив параметры и файлы cookie, полученные по предварительному запросу, чтобы получить изображение Captcha для пользователя.Я пытаюсь вести сеанс.

Connection con = Jsoup.connect("https://nfce.set.rn.gov.br/portalDFE/JpegImage.aspx")

            .method(Connection.Method.GET);
    con.cookie("ASP.NET_SessionId",cookies.get("ASP.NET_SessionId"));
    con.cookie("ARRAffinity",cookies.get("ARRAffinity"));
    con.data(cookies);
    con.data("__LASTFOCUS",param1);
    con.data("__EVENTTARGET",param2);
    con.data("__EVENTARGUMENT",param3);
    con.data("__VIEWSTATE",param4);
    con.data("__VIEWSTATEGENERATOR",param5);
    con.data("__EVENTVALIDATION",param6);
    con.ignoreContentType(true);
byte[] bytes = con.execute().bodyAsBytes();
    ImageIcon imagem = new ImageIcon();
    InputStream is = new ByteArrayInputStream(bytes);
    Image image = new ImageIcon(bytes).getImage();
    ImageIcon icon = new ImageIcon(image);
    JFrame frame = new JFrame("Captcha");
    JLabel label = new JLabel();

    frame.getContentPane().add(label, BorderLayout.CENTER);



    String captcha = (String) JOptionPane.showInputDialog(frame,label,"Test"    ,JOptionPane.INFORMATION_MESSAGE,icon,null,null);

И, наконец, там, где у меня проблемы.Я пытаюсь сделать запрос, чтобы получить страницу, которую я хочу, и проанализировать, но по какой-то причине, которую я пока не могу понять, я получаю ту же страницу с другим URL.

Connection con2 = Jsoup.connect("https://nfce.set.rn.gov.br/portalDFE/NFCe/DadosNFCe.aspx").method(Connection.Method.POST);
    con2.data("tipoConsulta","resumida");
    con2.data("ctl03$txt_chave_acesso","24190109374422000363650020001921751004777144");
    con2.data("txt_cod_antirobo",captcha);
    con2.cookie("ASP.NET_SessionId",cookies.get("ASP.NET_SessionId"));
    con2.cookie("ARRAffinity",cookies.get("ARRAffinity"));
    con2.data(cookies);
    con2.data("__LASTFOCUS",param1);
    con2.data("__EVENTTARGET",param2);
    con2.data("__EVENTARGUMENT",param3);
    con2.data("__VIEWSTATE",param4);
    con2.data("__VIEWSTATEGENERATOR",param5);
    con2.data("__EVENTVALIDATION",param6);
    con2.ignoreContentType(true);


    con2.header("Connection","keep-alive");
    con2.header("Content-Type","application/x-www-form-urlencoded");
    con2.header("Accept-Encoding","gzip, deflate, br");
    con2.header("Accept-Language","pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7");
    con2.header("Cache-Control","no-cache");
    con2.header("Connection","keep-alive");
    con2.header("Host","nfce.set.rn.gov.br");
    con2.header("Pragma","no-cache");
    con2.header("Upgrade-Insecure-Requests","1");
    con2.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36");

У Chorme работает, но через Jsoup нет.Вот внешний вид страницы до запроса и после:

До запроса в браузере

После запроса в браузере

Спасибо за помощь.

...