2015-11-28 69 views
0

我正在一個應用程序,我需要通過在jsoup彈出登錄。如何通過jsoup incase彈出登錄?

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 

回答

1

本網站使用Basic access authentication

您可以用這種方式發送這樣的請求:

package com.github.davidepastore.stackoverflow33967883; 

import java.io.IOException; 

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

/** 
* Stackoverflow 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-codecBase64類):

<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

+0

感謝您的回答 – subhfyu546754