OkHttp 3-基本的な使い方
3732 ワード
転載は出典を明記してください。http://www.jianshu.com/p/7919cd2685d3 翻訳者のレベルが限られているので、れんがを歓迎します。読者も原文を読むことができます。
OkHttp
HttpおよびHttp/2をサポートしており、AndroidおよびJavaアプリケーションのネットワーク要求クライアントに適用できる。
概要
Httpは、現代のネットワークアプリケーションにおいてよく使われているプロトコルであり、データ伝達の媒体である。効率的なHttpコードを実行すると、アプリケーションはより速い負荷速度とより少ない帯域幅でデータを要求することができる。OkHttpは効率的なHttp要求クライアントであり、通常は以下のような特徴を持っている。は、大量の要求を同じホストに同時に送信すると、Http/2は、一つのソケットを共有してサポートすることを許可し、サポートする。 接続池の存在は、要求を効果的に低減するために必要な準備動作 を有する。はダウンロードデータを自動的に圧縮し、ダウンロードデータのサイズを下げることができます。 は、応答データを自動的にキャッシュし、毎回ネットワークを介してネットワークデータ を要求することを回避することができる。
OkHttpは問題が発生した時に柔軟な処理を守ることができます。よくある接続問題に対して、OkHttpは自動的にアプリケーションの修復処理を行うことを黙認します。もしあなたのサーバーが複数のIPアドレスを持っているなら、OkHttpは要求に失敗した時、他のIPアドレスを接続しようと試みます。サーバが同時に
OkHttpの使い方はとても簡単です。OkHttpの要求/応答のAppは建築者モードに設計され、不変性を持つ。これは、プライマリスレッド内で対応するクローズドを呼び出すこともできるし、サブスレッド内で対応する方法をリピートすることもできる。
OkHttpはAndroid 2.3以上のバージョンに対応しています。Javaアプリケーションには、最小バージョンはJDK 1.7以上が必要です。
ダウンロード
okhttp-3.8.jarパッケージはリンクをダウンロードします。Jarパッケージをアプリケーションに導入することによって統合すると、OkioとOkHttpの統合が必要です。
MAVEN
Get方法でURLを要求します。
下のコードは一つのURLを通じて一つのテキストをダウンロードし、テキストの内容を印刷します。
下記のコードはサーバにデータをアップロードする操作を示しています。
OkHttp
HttpおよびHttp/2をサポートしており、AndroidおよびJavaアプリケーションのネットワーク要求クライアントに適用できる。
概要
Httpは、現代のネットワークアプリケーションにおいてよく使われているプロトコルであり、データ伝達の媒体である。効率的なHttpコードを実行すると、アプリケーションはより速い負荷速度とより少ない帯域幅でデータを要求することができる。OkHttpは効率的なHttp要求クライアントであり、通常は以下のような特徴を持っている。
OkHttpは問題が発生した時に柔軟な処理を守ることができます。よくある接続問題に対して、OkHttpは自動的にアプリケーションの修復処理を行うことを黙認します。もしあなたのサーバーが複数のIPアドレスを持っているなら、OkHttpは要求に失敗した時、他のIPアドレスを接続しようと試みます。サーバが同時に
IPv4
+IPv6
をサポートしている場合、またはホストサーバがデータに障害がある場合には、非常に有用である。握手が失敗した場合、OkHttpは、TLS(SNI, ALPN)
プロトコルを有する新しい接続を自動的に初期化し、TLS 1.0
をサポートするサーバに要求を再起動する。OkHttpの使い方はとても簡単です。OkHttpの要求/応答のAppは建築者モードに設計され、不変性を持つ。これは、プライマリスレッド内で対応するクローズドを呼び出すこともできるし、サブスレッド内で対応する方法をリピートすることもできる。
OkHttpはAndroid 2.3以上のバージョンに対応しています。Javaアプリケーションには、最小バージョンはJDK 1.7以上が必要です。
ダウンロード
okhttp-3.8.jarパッケージはリンクをダウンロードします。Jarパッケージをアプリケーションに導入することによって統合すると、OkioとOkHttpの統合が必要です。
MAVEN
com.squareup.okhttp3
okhttp
3.8.0
GRADLEcompile 'com.squareup.okhttp3:okhttp:3.8.0'
模範的なタイプGet方法でURLを要求します。
下のコードは一つのURLを通じて一つのテキストをダウンロードし、テキストの内容を印刷します。
public class GetExample {
OkHttpClient client = new OkHttpClient();
String run(String url) throws IOException {
Request request = new Request.Builder()
.url(url)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
public static void main(String[] args) throws IOException {
GetExample example = new GetExample();
String response = example.run("https://raw.github.com/square/okhttp/master/README.md");
System.out.println(response);
}
}
Post方法でサーバにデータを転送する下記のコードはサーバにデータをアップロードする操作を示しています。
public class PostExample {
public static final MediaType JSON
= MediaType.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException {
RequestBody body = RequestBody.create(JSON, json);
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
try (Response response = client.newCall(request).execute()) {
return response.body().string();
}
}
String bowlingJson(String player1, String player2) {
return "{'winCondition':'HIGH_SCORE',"
+ "'name':'Bowling',"
+ "'round':4,"
+ "'lastSaved':1367702411696,"
+ "'dateStarted':1367702378785,"
+ "'players':["
+ "{'name':'" + player1 + "','history':[10,8,6,7,8],'color':-13388315,'total':39},"
+ "{'name':'" + player2 + "','history':[6,10,5,10,10],'color':-48060,'total':41}"
+ "]}";
}
public static void main(String[] args) throws IOException {
PostExample example = new PostExample();
String json = example.bowlingJson("Jesse", "Jake");
String response = example.post("http://www.roundsapp.com/post", json);
System.out.println(response);
}
}