xUtils3的配置十分的简单:
2-1)使用Gradle构建时添加一下依赖即可
compile 'org.xutils:xutils:3.3.36'
2-2)加入权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
创建Application
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); x.Ext.setDebug(false); //输出debug日志,开启会影响性能 }
2-4)在AndroidManifest文件中注册MyApp
<application
android:name=".MyApp"
...
</application>
3.xUtils3网络模块的使用
RequestParams params = new RequestParams(url); params.addQueryStringParameter("username","abc"); params.addQueryStringParameter("password","123"); x.http().get(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { //解析result } //请求异常后的回调方法 @Override public void onError(Throwable ex, boolean isOnCallback) { } //主动调用取消请求的回调方法 @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });
2)POST请求
RequestParams params = new RequestParams(url); params.addBodyParameter("username","abc"); params.addParameter("password","123"); params.addHeader("head","android"); //为当前请求添加一个头 x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { //解析result } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } }); 4)上传文件
String path="/mnt/sdcard/Download/icon.jpg"; RequestParams params = new RequestParams(url); params.setMultipart(true); params.addBodyParameter("file",new File(path)); x.http().post(params, new Callback.CommonCallback<String>() { @Override public void onSuccess(String result) { } @Override public void onError(Throwable ex, boolean isOnCallback) { } @Override public void onCancelled(CancelledException cex) { } @Override public void onFinished() { } });
5)下载文件
这里以下载apk为例进行说明,apk下载完成后,自动调用系统的安装方法。
url = "http://127.0.0.1/server/abc.apk"; RequestParams params = new RequestParams(url); //自定义保存路径,Environment.getExternalStorageDirectory():SD卡的根目录 params.setSaveFilePath(Environment.getExternalStorageDirectory()+"/myapp/"); //自动为文件命名 params.setAutoRename(true); x.http().post(params, new Callback.ProgressCallback<File>() { @Override public void onSuccess(File result) { //apk下载完成后,调用系统的安装方法 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(result), "application/vnd.android.package-archive"); getActivity().startActivity(intent); } @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() { } //下载的时候不断回调的方法 @Override public void onLoading(long total, long current, boolean isDownloading) { //当前进度和文件总大小 Log.i("JAVA","current:"+ current +",total:"+total); } });
本文作者为DBC,转载请注明。