我想用用戶名和密碼登錄https網站,轉到該網站的一個網址,然後下載該網頁的網址(也許解析該網頁的內容頁)。我只想使用核心Java apis而不是htmlunit,jsoup等。我得到了下面的代碼來學習如何做到這一點,但它並沒有告訴我如何登錄到網站。請告訴我如何登錄,維護會話,然後關閉連接。登錄https網站並使用唯一的核心Java API下載頁面
來源 - http://www.mkyong.com/java/java-https-client-httpsurlconnection-example/
import java.net.MalformedURLException;
import java.net.URL;
import java.security.cert.Certificate;
import java.io.*;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLPeerUnverifiedException;
public class HttpsClient{
public static void main(String[] args)
{
new HttpsClient().testIt();
}
private void testIt(){
String https_url = "https://www.google.com/";
URL url;
try {
url = new URL(https_url);
HttpsURLConnection con = (HttpsURLConnection)url.openConnection();
//dumpl all cert info
print_https_cert(con);
//dump all the content
print_content(con);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void print_https_cert(HttpsURLConnection con){
if(con!=null){
try {
System.out.println("Response Code : " + con.getResponseCode());
System.out.println("Cipher Suite : " + con.getCipherSuite());
System.out.println("\n");
Certificate[] certs = con.getServerCertificates();
for(Certificate cert : certs){
System.out.println("Cert Type : " + cert.getType());
System.out.println("Cert Hash Code : " + cert.hashCode());
System.out.println("Cert Public Key Algorithm : "
+ cert.getPublicKey().getAlgorithm());
System.out.println("Cert Public Key Format : "
+ cert.getPublicKey().getFormat());
System.out.println("\n");
}
} catch (SSLPeerUnverifiedException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
}
private void print_content(HttpsURLConnection con){
if(con!=null){
try {
System.out.println("****** Content of the URL ********");
BufferedReader br =
new BufferedReader(
new InputStreamReader(con.getInputStream()));
String input;
while ((input = br.readLine()) != null){
System.out.println(input);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
謝謝。我不知道如何使用小提琴手,但我會學習。順便說一句,有沒有包含所有可能的登錄方法的教程? – stack1 2014-12-07 06:36:31
任何提示什麼在小提琴手「日誌」尋找? – stack1 2014-12-07 06:37:14
我還沒有嘗試過這個答案,但我仍然選擇了它,因爲它給了我一些有用的信息。 – stack1 2014-12-25 21:57:23