Android Studio では、Gradle に compile 'com.squareup.okhttp3:okhttp:3.8.0' を追加すれば済むと思いますが、Eclipse のプロジェクトでは、普通に lib フォルダを追加して、そこに二つを置いて右クリックから追加しました。※ 右クリックから参照の追加をしないで、外部 jar の追加で処理すると、jar の場所が相対位置にならないので注意
OkHttp のダウンロード OkHttp An HTTP & HTTP/2 client for Android and Java applications
( 大きいのが OkHttp で下の小さいリンクが 依存ライブラリの okio です ) Javadoc 呼び出す WEB アプリ 結果が解りやすいので、メール送信です。 ▼ リンク先にサンプルコードがあります mb_send_mail を使用したメール送信テンプレート POST メソッドで受け取った時のみ送信するようになっています。 Java のコード
import okhttp3.Call; import okhttp3.FormBody; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class Main { public static void main(String[] args) { // HTTP 処理用オプジェクト OkHttpClient client = new OkHttpClient(); // POST 用 FormBody の内容の作成 FormBody.Builder formbodyBuilder = new FormBody.Builder(); formbodyBuilder.add("to", "xxxxxx@gmail.com"); formbodyBuilder.add("body", "日本語\r\n表示"); formbodyBuilder.add("subject", "OkHttp で送信テスト"); // 送信用ユニットの作成 FormBody formbody = formbodyBuilder.build(); // 送信用のデータを作成 Request.Builder requestBuilder = new Request.Builder(); String url = "http://localhost/lightbox/send_post_test.php"; requestBuilder.url(url); requestBuilder.post(formbody); Request request = requestBuilder.build(); // 受信用のオブジェクトの準備 Call call = client.newCall(request); String result = ""; // 送信と受信 try { Response response = call.execute(); result = response.body().string(); } catch (Exception e) { e.printStackTrace(); } // 受信結果の表示 System.out.println(result); } }
OkHttp では、メソッドの戻り値をオブジェクト自体にする事によって、チェーンするコードが書けるようになっていますが、イマいち直感的では無いので、それぞれのオプジェクト毎の記述で行っています。 ▼ 以下は、ローカルに送った内容をトレースで記録したものです
POST /lightbox/send_post_test.php HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 150 Host: localhost Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.8.0 to=xxxxxx%40gmail.com&body=%E6%97%A5%E6%9C%AC%E8%AA%9E%0D%0A%E8%A1%A8%E7%A4%BA&subject=OkHttp%20%E3%81%A7%E9%80%81%E4%BF%A1%E3%83%86%E3%82%B9%E3%83%88
関連する記事 Android Studio : OkHttp v3.8.0 で WEBアプリに POST 送信を行う
|
【java : 通信関連の最新記事】
- Java : WEB上のテキストファイルを取得する
- Java11 + Visual Studio Code + JavaMail( with JavaBeans Activation Framework )
- Javamail で IMAP 受信
- java をコマンドプロンプトからビルドして実行するサンプル。( メール送信が初心者には楽しいはず )
- Eclipse + JFace : HttpURLConnection で GET
- 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 データの内容を取得する