Android高速開発フレームワークのxUtils---ネットワークモジュール
15543 ワード
このブログでは、xUtilsのネットワークモジュールについて説明します.学習したい方は、まず最初のAndroidクイック開発フレームワークのxUtils-注釈モジュールを見て、最初のステップ2を完了する必要があります.
1.必要な権限の追加
2.Getリクエストを使用してネットワークデータを取得します.詳細はコードコメントを参照してください.
3.Post要求によるネットワークデータの取得
4.その他の要求方式の使用
5.ファイルをサーバーにアップロードするには、サービス側とどのような姿勢でアップロードすればよいかをコミュニケーションする必要があります.
6.サーバからファイルをダウンロードし、Callbackを使用する.ProgressCallback<>進捗のあるコールバックインタフェース
7.ネットワーク要求帯キャッシュ、具体的にはonCacheコールバック方法を参照
効果図
xUtilsのネットワークモジュールには、これらの部分がほぼ含まれています.これも私たちの開発でよく使われています.具体的な学習資料は
プロジェクトのアドレス:https://github.com/azhong1011/xUtils
1.必要な権限の追加
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
2.Getリクエストを使用してネットワークデータを取得します.詳細はコードコメントを参照してください.
@Event(R.id.get)
private void get(View view) {
//
RequestParams params = new RequestParams("http://www.omghz.cn/FirstService/getString");
//
// params.addQueryStringParameter("username", " ");
// params.addQueryStringParameter("password", "123456");
//Callback.CommonCallbackString-->
Callback.Cancelable cancelable = x.http().get(params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
// ,result:
textView.setText("Get: " + result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
//
//ex--->
//isOnCallback--->true (onSuccess,onCancelled,onFinished)
//isOnCallback--->false
}
@Override
public void onCancelled(CancelledException cex) {
//
}
@Override
public void onFinished() {
//
}
});
// cancelable.cancel();// onCancelled()
}
3.Post要求によるネットワークデータの取得
@Event(R.id.post)
private void post(View view) {
String path = "http://www.omghz.cn/FirstService/getString";
RequestParams params = new RequestParams(path);
// body
params.addBodyParameter("username", " ");
// body
params.addBodyParameter("password", "123456");
x.http().post(params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
textView.setText("Post: " + result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
4.その他の要求方式の使用
@Event(R.id.other)
private void other() {
RequestParams params = new RequestParams("http://www.omghz.cn/FirstService/getString");
//
x.http().request(HttpMethod.GET, params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
textView.setText("Other: " + result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
5.ファイルをサーバーにアップロードするには、サービス側とどのような姿勢でアップロードすればよいかをコミュニケーションする必要があります.
@Event(R.id.upload)
private void upLoad(View view) {
//
String path = Environment.getExternalStorageDirectory() + "/1.docx";
//
String url = "http://www.omghz.cn/FirstService/FileReceive";
RequestParams params = new RequestParams(url);
// Multipart
//params.setMultipart(true);
params.addHeader("FileName", "1.docx");
File file = new File(path);
params.addBodyParameter("File", file);
x.http().post(params, new Callback.CommonCallback() {
@Override
public void onSuccess(String result) {
Toast.makeText(getActivity(), result, Toast.LENGTH_SHORT).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
6.サーバからファイルをダウンロードし、Callbackを使用する.ProgressCallback<>進捗のあるコールバックインタフェース
@Event(R.id.download)
private void downLoad(View view) {
String url = "http://www.omghz.cn/FirstService/File/SwipeBack.apk";
RequestParams params = new RequestParams(url);
//
params.setSaveFilePath(Environment.getExternalStorageDirectory());
//
params.setAutoRename(true);
x.http().get(params, new Callback.ProgressCallback() {
@Override
public void onSuccess(File result) {
// apk,
Intent intent = new Intent();
intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive");
getActivity().startActivity(intent);
}
@Override
public void onLoading(long total, long current, boolean isDownloading) {
// ,
seekBar.setMax((int) total);
seekBar.setProgress((int) current);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
@Override
public void onWaiting() {
// ,
}
@Override
public void onStarted() {
//
}
});
}
7.ネットワーク要求帯キャッシュ、具体的にはonCacheコールバック方法を参照
@Event(R.id.cache)
private void cache(View view) {
String url = "http://www.omghz.cn/FirstService/getString";
RequestParams params = new RequestParams(url);
// --> ms
params.setCacheMaxAge(1000 * 60);
x.http().get(params, new Callback.CacheCallback() {
@Override
public void onSuccess(String result) {
textView.setText("Cache: " + result);
}
@Override
public boolean onCache(String result) {
//result--->
// true , 60s get ,onSuccess
// false , 60s get ,onSuccess
return false;
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
効果図
xUtilsのネットワークモジュールには、これらの部分がほぼ含まれています.これも私たちの開発でよく使われています.具体的な学習資料は
に行って勉強することができて、次に私達はピクチャーモジュールについて話します.プロジェクトのアドレス:https://github.com/azhong1011/xUtils