ApacheのCommonsライブラリにあるhttpclientです。httpプロトコルのリクエストが簡単に行えます。
このページの目次です。
1. Apache Commons HttpClientでCookieの内容表示する方法
2. Apache Commons HttpClientとJEditorPaneを使用してWebページを表示
3. JavaでLet's EncryptなどのSSL証明書が認識されない場合の解決方法
Apache Commons HttpClientでCookieの内容表示することができます。
package com.zealseeds.sample;
import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class CookieViewSample {
public static void main(String args[]) {
String url = "https://www.google.co.jp/";
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
try {
client.executeMethod(method);
Cookie[] cookies = client.getState().getCookies();
for (Cookie cookie : cookies) {
System.out.println(cookie.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zealseeds</groupId> <artifactId>App</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> </dependencies> </project>
package com.zealseeds.sample;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class HTTPClientSample {
private String HOME = "http://www.google.co.jp/";
private JFrame frame = new JFrame();
private JEditorPane editor = new JEditorPane();
public static void main(String[] args) throws IOException {
new HTTPClientSample();
}
public HTTPClientSample() throws IOException {
editor.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent e) {
// Commons Httpclientで遷移してみる。
try {
String url = e.getURL().toString();
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(url);
method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
new DefaultHttpMethodRetryHandler(3, false));
client.executeMethod(method);
String result = "";
result = method.getResponseBodyAsString();
editor.setContentType("text/html");
editor.setText(result);
method.releaseConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
}
});
frame.getContentPane().add(new JScrollPane(editor));
frame.setSize(800, 600);
frame.setVisible(true);
// JEditorPaneで遷移してみる
editor.setEditable(false);
editor.setPage(HOME);
}
}
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.zealseeds</groupId> <artifactId>MailApp</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>commons-httpclient</groupId> <artifactId>commons-httpclient</artifactId> <version>3.1</version> </dependency> </dependencies> </project>
JavaでLet's EncryptのSSL証明書が認識されない、 「PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target」というような例外が発生する場合の対処方法です。
ご使用のJava(JRE)に信用できる証明書として認識されていないのが原因です。
Let's Encryptなど一般的に使用されている証明書の場合はJavaのバージョンを上げることで解決できます。 しかし、自己証明書のように解決できないパターンがあるので、ここでは直接組み込む方法について解説します。
以下はLet's Encryptの例です。
letsencryptを設定するとchain.pemが入手できます。
場所)/etc/letsencrypt/archive/<ドメイン名>/chain<数字>.pem
以下のようにkeytoolコマンドで組込みます。
keytool -trustcacerts -keystore <JAVA_HOME(JREルートパス例)/usr/java/XXX)>/lib/security/cacerts -storepass changeit -noprompt -importcert -file chain<数字>.pem
Javaとは?から言語の枠を超えるところまで、Java言語についてまとめています。
スポンサーリンク
サイト内のページ
言語
C・C++
/HTML
/Java
/JavaScript
/PHP
/シェルスクリプト
開発環境
Ant
/Burp
/Eclipse
/Fiddler
/gcc
/gdb
/Git
/g++
/JDK
/JMeter
/JUnit
/Teraterm
/ZAP
技術・仕様
Ajax
/CORBA
/Jakarta EE(旧称J2EE、Java EE)
/JNI
ライブラリ/Framework/CMS
bootstrap
/jQuery
/FuelPHP
/Lucene
/MyBatis
/Seasar2
/Spring
/Struts
/WordPress
Web API
Google Maps
ITインフラ
OSとミドルウェア
Linux
/Windows
/シェル
ActiveMQ
/Tomcat
/MariaDB
/MySQL
/Nagios
/Redis
/Solr
ITインフラ
セキュリティ
公開サーバーのセキュリティ
SI
ホームページの作り方
スポンサーリンク
IPアドレス確認ツール
あなたのグローバルIPアドレスは以下です。
216.73.216.101
HTMLの表示色確認ツール
パスワード生成ツール
文字数のプルダウンを選択して、取得ボタンを押すと「a~z、A~Z、0~9」の文字を ランダムに組み合わせた文字列が表示されます。
ここに生成されます。
スポンサーリンク
Copyright (C) 2007-2024 zealseeds. All Rights Reserved.