SQLの窓

2017年05月14日


OkHttp v3.8.0 jar( と okio 1.13.0.jar ) を Eclipse のプロジェクトに追加して一般的な POST 送信を行う

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 送信を行う


タグ:post OkHttp
posted by lightbox at 2017-05-14 18:44 | Comment(0) | java : 通信関連 | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり