やりたい事は簡単でも、環境からの説明を入れると長くなってしまうので、それぞれの要点部分は他から参照するようにしています。 対象とする URL は、PHP で作成した簡易掲示板です。この簡易掲示板は、Google Chrome で開いた時のみ簡易掲示板として働きます。それ以外では 簡易的な JSON の文字列で掲示板用のデータを返します。Google Chrome でも、モバイルモードで、デバイス無しで UA を適当に文字列入れると JSON で表示します。 Java で Window プログラムをテストするのに、Vector で配布されている自己解凍式の Pleiades を使い、Window Builder ですぐボタンとそのイベントコードまでが作成されます。後は、そのイベントからここにあるクラスを作成して呼び出すだけです。 このクラスは、元々は Android 用に作ったもので、リンク先には POST もあります。 ここでは、まだ実装していませんが、この後 Google gson を使って JSON データを利用する事になります。 プロジェクト作成からボタン作成まで 日本語 Eclipse 4.4 Pleiades All in One Java(Vector から) で即 Window BuilderHttpGet クラス ※ セッション対応した、HttpGet と HttpPost はこちらから
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpGet {
// **********************************************
// URL と charset の初期値
// **********************************************
private String initTargetUrl = "http://toolbox.winofsql.jp/log.php";
private String initTargetCharset = "utf-8";
// **********************************************
// コンストラクタによって初期値が違います
// **********************************************
public HttpGet() {
}
public HttpGet(String targetUrl) {
initTargetUrl = targetUrl;
}
public HttpGet(String targetUrl,String targetCharset) {
initTargetUrl = targetUrl;
initTargetCharset = targetCharset;
}
// **********************************************
// コンストラクタで指定した URL と charset で処理
// **********************************************
public String execute() {
return execute(initTargetUrl,initTargetCharset);
}
// **********************************************
// 指定した URL へ 任意の charset で処理
// **********************************************
public String execute(String targetUrl,String targetCharset) {
StringBuffer web_data = new StringBuffer();
try {
// **********************************************
// インターネットへの接続
// **********************************************
// 読み込む WEB上のターゲット
URL url = new URL(targetUrl);
// 接続オブジェクト
HttpURLConnection http = (HttpURLConnection)url.openConnection();
// GET メソッド
http.setRequestMethod("GET");
// 接続
http.connect();
// **********************************************
// ストリームとして読み込む準備
// **********************************************
// 以下読み込み3点セット InputStream / InputStreamReader / BufferedReader
InputStream input_stream = http.getInputStream();
// UTF-8 でリーダーを作成
InputStreamReader input_stream_reader = new InputStreamReader(input_stream, targetCharset);
// 行単位で読み込む為の準備
BufferedReader buffered_reader = new BufferedReader(input_stream_reader);
// **********************************************
// 行の一括読みこみ
// **********************************************
String line_buffer = null;
// BufferedReader は、readLine が null を返すと読み込み終了
while ( null != (line_buffer = buffered_reader.readLine() ) ) {
// コマンドプロンプトに表示
web_data.append( line_buffer );
web_data.append( "\n" );
}
// **********************************************
// 接続解除
// **********************************************
http.disconnect();
}
catch(Exception e) {
// 失敗
System.out.println( e.getMessage());
}
return web_data.toString();
}
}
読み出す URL 部分には、以下のページで紹介している内容を使用しています。 PHP による『超簡易掲示板』 / アプリケーションからの POST 検証用本来は localhost に設置して Google Chrome でデータを登録した結果を JSON で取得するように作成されています localhost の構築は、以下で説明している 『AN HTTP Server』を使用すると簡単です 実運用では無く、学習用の WWWサーバーとしてはこれ以外に無い『AN HTTP Server』ですが、古いソフトなので使い方にコツがあります
読み出し部分
/**
* Create contents of the application window.
* @param parent
*/
@Override
protected Control createContents(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(null);
{
Button btnNewButton = new Button(container, SWT.NONE);
btnNewButton.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
System.out.println("ボタンの処理");
HttpGet hg = new HttpGet();
// String result =
// hg.execute(
// "http://localhost/basic/log_01/log.php",
// "utf-8"
// );
String result = hg.execute();
System.out.println(result);
}
});
btnNewButton.setBounds(10, 10, 81, 28);
btnNewButton.setText("New Button");
}
return container;
}
localhost で行った実行結果は以下のようになっています。Eclipse で、コメントのオン・オフは、行を選択して CTRL + / です。 ▼ localhost を Google Chrome で開いたものです。
![]()
|
|
【java : 通信関連の最新記事】
- Java : WEB上のテキストファイルを取得する
- Java11 + Visual Studio Code + JavaMail( with JavaBeans Activation Framework )
- Javamail で IMAP 受信
- OkHttp v3.8.0 jar( と okio 1.13.0.jar ) を Eclipse のプロジェクトに追加して一般的な POST 送信を行う
- java をコマンドプロンプトからビルドして実行するサンプル。( メール送信が初心者には楽しいはず )
- javamail でメール送信と、付属のバッチビルド用のスクリプトの解説
- Java : バッチでテストする Twiiter API の『検索処理』
- google-gson(Java) を使って、JSON を 定義済みクラスのオブジェクトに一括変換する
- Java : RSS(Document) から、item の中の先頭の指定した要素の値を取得するクラス
- google-gson で、JSON 文字列の構成要素の一覧を取り出す処理
- java : Apache commons-net-3.0.1 を使ってごく自然に FTPS(セキュア) でファイルのアップロード/ダウンロード
- javamail 1.4.4 : IMAP で、ユーザから別のユーザへメッセージを全て(範囲指定で)コピーする
- javamail 1.4.4 : IMAP のメール受信イベントでメールを受け取ったら処理を行う
- Java : WEB 上の XML データの内容を取得する


HttpGet クラス
本来は localhost に設置して Google Chrome でデータを登録した結果を JSON で取得するように作成されています
localhost の構築は、以下で説明している 『AN HTTP Server』を使用すると簡単です
読み出し部分
Eclipse で、コメントのオン・オフは、行を選択して CTRL + / です。
▼ localhost を Google Chrome で開いたものです。




