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");
Callback.Cancelable cancelable = x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
textView.setText("Get: " + result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
3.使用Post请求获取网络数据
@Event(R.id.post)
private void post(View view) {
String path = "http://www.omghz.cn/FirstService/getString";
RequestParams params = new RequestParams(path);
params.addBodyParameter("username", "小明");
params.addBodyParameter("password", "123456");
x.http().post(params, new Callback.CommonCallback<String>() {
@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<String>() {
@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);
params.addHeader("FileName", "1.docx");
File file = new File(path);
params.addBodyParameter("File", file);
x.http().post(params, new Callback.CommonCallback<String>() {
@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<File>() {
@Override
public void onSuccess(File result) {
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);
params.setCacheMaxAge(1000 * 60);
x.http().get(params, new Callback.CacheCallback<String>() {
@Override
public void onSuccess(String result) {
textView.setText("Cache: " + result);
}
@Override
public boolean onCache(String result) {
return false;
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
效果图
xUtils中网络模块大致就包括这些部分,这也是我们开发中比较常用的。具体学习资料可以去极客学院
学习,接下来我们在说一说图片模块。