okhttp
Android Studio なら、GRADLE で compile 'com.squareup.okhttp3:okhttp:3.8.0'
GET
Swing の JTable に 1) WEBのJSON2次元配列。2) WEB の JSON配列 を取り込んで表示する( Google Gson と okhttp を使用 )
String url = "https://ドメイン/ディレクトリ/json/syain_array.php";
String result ="[\"error\"]";
OkHttpClient client = new OkHttpClient();
Request.Builder builder = new Request.Builder();
builder.url(url);
Request request = builder.build();
Response response = null;
try {
response = client.newCall(request).execute();
result = response.body().string();
}
catch (IOException e) {
e.printStackTrace();
}
POST
Android Studio : OkHttp v3.8.0 で WEBアプリに POST 送信を行う
ArrayList<String> data = new ArrayList<String>();
data.add("winofsql@gmail.com");
data.add("OkHttp で送信テスト(Android Studio)");
data.add("日本語\r\n表示");
AsyncTask<ArrayList<String>,Void,String> async;
// 非同期実行用オブジェクト
async = new AsyncTask<ArrayList<String>, Void, String>() {
@Override
protected String doInBackground(ArrayList<String>... params) {
ArrayList<String> data = params[0];
// HTTP 処理用オプジェクト
OkHttpClient client = new OkHttpClient();
// POST 用 FormBody の内容の作成
FormBody.Builder formbodyBuilder = new FormBody.Builder();
formbodyBuilder.add("to", data.get(0));
formbodyBuilder.add("subject", data.get(1));
formbodyBuilder.add("body", data.get(2));
// 送信用ユニットの作成
FormBody formbody = formbodyBuilder.build();
// 送信用のデータを作成
Request.Builder requestBuilder = new Request.Builder();
String url = "https://ドメイン/lightbox/mail/send.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();
}
return result;
}
@Override
protected void onPostExecute(String s) {
Log.i("lightbox", s);
// 画面に対してのアクセスはここから行います
}
};
// 実行
async.execute(data);
マルチパート POST
WindowBuilder(Swing) で、WEBカメラを使用して画像を保存して okhttp で WEBサーバへアップロードする
※ okhttp には File オブジェクトと mime を渡します。
OkHttpClient client = new OkHttpClient();
MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder();
multipartBodyBuilder.setType(MultipartBody.FORM);
multipartBodyBuilder.addFormDataPart(
"target",
targetFile.getName(),
RequestBody.create(MediaType.parse("image/png"),targetFile)
);
RequestBody requestBody = multipartBodyBuilder.build();
// 送信用のデータを作成
Request.Builder requestBuilder = new Request.Builder();
String url = "https://ドメイン/パス/file_upload.php";
requestBuilder.url(url);
requestBuilder.post(requestBody);
Request request = requestBuilder.build();
// 受信用のオブジェクトの準備
Call call = client.newCall(request);
String result = "";
// 送信と受信
try {
Response response = call.execute();
result = response.body().string();
} catch (Exception ex) {
ex.printStackTrace();
}
posted by
at 2017-06-17 14:34
|
Comment(0)
|
リンク
|

|