美文网首页
Xutils3网络连接

Xutils3网络连接

作者: 糊涂大仙 | 来源:发表于2016-08-31 12:35 被阅读0次

    #1在build.gradle中引包

    compile'org.xutils:xutils:3.3.36'

    #2创建MyApplication初始化xutils

    public class MyApplication extends Application {

    @Override

    public voidonCreate() {

    super.onCreate();

    x.Ext.init(this);

    x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.

    }

    #3在AndroiManifast.xml中声明权限并引入MyApplication

    <uses-permissionandroid:name="android.permission.INTERNET"/>

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application

    android:name=".base.MyApplication"

    #4 xml页面

    packagecom.hyad.xinhualianshe.test.dummy;

    importandroid.app.ProgressDialog;

    importandroid.os.Bundle;

    importandroid.support.v7.app.AppCompatActivity;

    importandroid.util.Log;

    importandroid.view.View;

    importandroid.widget.Button;

    importandroid.widget.ImageView;

    importandroid.widget.TextView;

    importcom.hyad.xinhualianshe.R;

    importorg.xutils.common.Callback;

    importorg.xutils.common.util.DensityUtil;

    importorg.xutils.http.HttpMethod;

    importorg.xutils.http.RequestParams;

    importorg.xutils.image.ImageOptions;

    importorg.xutils.view.annotation.ContentView;

    importorg.xutils.view.annotation.Event;

    importorg.xutils.view.annotation.ViewInject;

    importorg.xutils.x;

    importjava.io.File;

    @ContentView(R.layout.activity_xiazai)

    public classhttptestextendsAppCompatActivity {

    //    private Context context;

    @ViewInject(R.id.get)

    privateButtonGET;

    @ViewInject(R.id.post)

    privateButtonPOST;

    @ViewInject(R.id.other)

    privateButtonOTHER;

    @ViewInject(R.id.download)

    privateButtonDOWNLOAD;

    @ViewInject(R.id.cache)

    privateButtonCACHE;

    @ViewInject(R.id.httptextView)

    privateTextViewTX;

    @ViewInject(R.id.httpimageView)

    privateImageViewimageView;

    ImageOptionsimageOptions;

    @Override

    protected voidonCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    //注入view和事件

    x.view().inject(this);

    //        context=this;

    imageOptions=newImageOptions.Builder()

    .setSize(DensityUtil.dip2px(120), DensityUtil.dip2px(120))

    .setRadius(DensityUtil.dip2px(5))

    // 如果ImageView的大小不是定义为wrap_content, 不要crop.

    .setCrop(true)

    // 加载中或错误图片的ScaleType

    //.setPlaceholderScaleType(ImageView.ScaleType.MATRIX)

    .setImageScaleType(ImageView.ScaleType.CENTER_CROP)

    //设置加载过程中的图片

    .setLoadingDrawableId(R.mipmap.ic_launcher)

    //设置加载失败后的图片

    .setFailureDrawableId(R.mipmap.ic_launcher)

    //设置使用缓存

    .setUseMemCache(true)

    //设置支持gif

    .setIgnoreGif(false)

    //设置显示圆形图片

    //      .setCircular(false)

    .build();

    }

    //    String url ="http://www.baidu.com/";

    @Event( R.id.get)

    private  voidget(View v){

    finalProgressDialog progressDialog =newProgressDialog(this);

    progressDialog.setMessage("正在下载");

    RequestParams params =newRequestParams(url);

    params.addQueryStringParameter("username","11000");

    params.addQueryStringParameter("password","888888");

    Callback.Cancelable cancelable = x.http().get(params,newCallback.CommonCallback() {

    @Override

    public voidonSuccess(String result) {

    Log.i("get_onSuccess","result"+ result);

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    //请求不管成功还是失败都会调用

    progressDialog.cancel();

    }

    });

    cancelable.cancel();

    }

    @Event(value={R.id.httpimageView})

    private voidloadImage(View view){

    x.image().bind(imageView,"http://img2.3lian.com/2014/f2/164/d/17.jpg",imageOptions);

    }

    @Event(R.id.post)

    private voidpost(View view){

    RequestParams params =newRequestParams(url);

    params.addBodyParameter("username","1100");

    //根据当前请求方式添加参数位置

    params.addParameter("password","88888");

    //        params.addHeader("head","xhs");

    x.http().post(params,newCallback.CommonCallback() {

    @Override

    public voidonSuccess(String result) {

    Log.i("get_onSuccess","result"+ result);

    TX.setText(result);

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    }

    });

    }

    @Event(R.id.other)

    private  voidother(View view){

    RequestParams params =newRequestParams(url);

    params.addBodyParameter("usrname","34234");

    x.http().request(HttpMethod.PUT, params,newCallback.CommonCallback() {

    @Override

    public voidonSuccess(String result) {

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    }

    });

    }

    @Event(R.id.upload)

    private voidupload(View view){

    String path ="//";

    RequestParams params =newRequestParams(url);

    params.addBodyParameter("file",newFile(path));

    x.http().post(params,newCallback.CommonCallback() {

    @Override

    public voidonSuccess(String result) {

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    }

    });

    }

    @Event(R.id.download)

    private  voiddownload(View view){

    url="";

    RequestParams params =newRequestParams(url);

    Callback.Cancelable post = x.http().post(params,newCallback.ProgressCallback() {

    @Override

    public voidonSuccess(File result) {

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    }

    @Override

    public voidonWaiting() {

    }

    @Override

    public voidonStarted() {

    }

    @Override

    public voidonLoading(longtotal,longcurrent,booleanisDownloading) {

    //文件下载时回调的方法

    Log.i("xxxxxxxxxxxxx","current<<"+current+"total<<"+total);

    }

    });

    }

    @Event(R.id.cache)

    private voidcache(View view){

    RequestParams params =newRequestParams(url);

    params.setCacheMaxAge(1000*60);

    Callback.Cancelable cancelable = x.http().get(params,newCallback.CacheCallback() {

    @Override

    public booleanonCache(String result) {

    //false 不相信本地缓存

    //相信本地缓存

    Log.i("sdadasd","cache<<"+result);

    return false;

    }

    @Override

    public voidonSuccess(String result) {

    Log.i("get_onSuccess","result"+ result);

    }

    @Override

    public voidonError(Throwable ex,booleanisOnCallback) {

    }

    @Override

    public voidonCancelled(CancelledException cex) {

    }

    @Override

    public voidonFinished() {

    //请求不管成功还是失败都会调用

    }

    });

    cancelable.cancel();

    }

    }

    相关文章

      网友评论

          本文标题:Xutils3网络连接

          本文链接:https://www.haomeiwen.com/subject/wbbqettx.html