Xutils3——网络连接

编程入门 行业动态 更新时间:2024-10-28 10:27:36

Xutils3——<a href=https://www.elefans.com/category/jswz/34/1771439.html style=网络连接"/>

Xutils3——网络连接

1在build.gradle中引包

    compile'org.xutils:xutils:3.3.36'

2创建MyApplication初始化xutils

 public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();x.Ext.init(this);x.Ext.setDebug(BuildConfig.DEBUG);// 是否输出debug日志, 开启debug会影响性能.}

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

 <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><applicationandroid:name=".base.MyApplication"

4 xml页面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.xxx.xxxActivity"android:orientation="vertical"android:weightSum="1">
<Button
    android:id="@+id/get"android:text="GET"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button
        android:id="@+id/post"android:text="POST"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button
        android:id="@+id/other"android:text="OTHER"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button
        android:id="@+id/upload"android:text="UPLOAD"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button
        android:id="@+id/download"android:text="DOWNLOAD"android:layout_width="match_parent"android:layout_height="wrap_content"/><Button
        android:id="@+id/cache"android:text="CACHE"android:layout_width="match_parent"android:layout_height="wrap_content"/><TextView
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:textAppearance="?android:attr/textAppearanceMedium"android:text="Medium Text"android:id="@+id/httptextView" /><ImageView
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/httpimageView"android:layout_gravity="center_horizontal"android:layout_weight="1.10" /></LinearLayout>

5Activity生成http连接方法

import android.app.ProgressDialog;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.sjs.vendingmachine.R;

import org.xutilsmon.Callback;
import org.xutilsmon.util.DensityUtil;
import org.xutils.http.HttpMethod;
import org.xutils.http.RequestParams;
import org.xutils.image.ImageOptions;
import org.xutils.view.annotation.ContentView;
import org.xutils.view.annotation.Event;
import org.xutils.view.annotation.ViewInject;
import org.xutils.x;

import java.io.File;

/**
* Created by SJS on 2017/1/17.
*/

@ContentView(R.layout.activity_http)
class httptest extends AppCompatActivity {
// private Context context;
@ViewInject(R.id.get)
private Button GET;

@ViewInject(R.id.post)
private Button POST;@ViewInject(R.id.other)
private Button OTHER;@ViewInject(R.id.download)
private Button DOWNLOAD;@ViewInject(R.id.cache)
private Button CACHE;@ViewInject(R.id.httptextView)
private TextView TX;@ViewInject(R.id.httpimageView)
private ImageView imageView;ImageOptions imageOptions;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//注入view和事件x.view().inject(this);//        context=this;imageOptions = new ImageOptions.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 = "/";@Event(R.id.get)private void get(View v) {final ProgressDialog progressDialog = new ProgressDialog(this);progressDialog.setMessage("正在下载");RequestParams params = new RequestParams(url);params.addQueryStringParameter("username", "11000");params.addQueryStringParameter("password", "888888");Callback.Cancelable cancelable = x.http().get(params, new Callback.CommonCallback() {@Overridepublic void onSuccess(Object result) {Log.i("get_onSuccess", "result" + result);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {//请求不管成功还是失败都会调用progressDialog.cancel();}});cancelable.cancel();}@Event(value = {R.id.httpimageView})
private void loadImage(View view) {x.image().bind(imageView, ".jpg", imageOptions);}@Event(R.id.post)private void post(View view) {RequestParams params = new RequestParams(url);params.addBodyParameter("username", "12323");//根据当前请求方式添加参数位置params.addParameter("password", "2313");//        params.addHeader("head","xs");x.http().post(params, new Callback.CacheCallback<String>() {@Overridepublic void onSuccess(String result) {Log.i("get_onSuccess", "result" + result);TX.setText(result);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}@Overridepublic boolean onCache(String result) {return false;}});
}@Event(R.id.other)private void other(View view) {RequestParams params = new RequestParams(url);params.addBodyParameter("usrname", "34234");x.http().request(HttpMethod.PUT, params, new Callback.CacheCallback<String>() {@Overridepublic boolean onCache(String result) {return false;}@Overridepublic void onSuccess(String result) {}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}});}@Event(R.id.upload)private void upload(View view) {String path = "//";RequestParams params = new RequestParams(url);params.addBodyParameter("file", new File(path));x.http().post(params, new Callback.CacheCallback<String>() {@Overridepublic boolean onCache(String result) {return false;}@Overridepublic void onSuccess(String result) {}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}});}@Event(R.id.download)private void download(View view) {url = "";RequestParams params = new RequestParams(url);Callback.Cancelable post =x.http().post(params, new Callback.ProgressCallback<File>() {@Overridepublic void onSuccess(File result) {}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {}@Overridepublic void onWaiting() {}@Overridepublic void onStarted() {}@Overridepublic void onLoading(long total, long current, boolean isDownloading) {//文件下载时回调的方法Log.i("xxxxxxxxxxxxx", "current<<" + current + "total<<" + total);}});}@Event(R.id.cache)private void cache(View view) {RequestParams params = new RequestParams(url);params.setCacheMaxAge(1000 * 60);Callback.Cancelable cancelable =x.http().get(params, new Callback.CacheCallback<String>() {@Overridepublic boolean onCache(String result) {//false 不相信本地缓存//相信本地缓存Log.i("sdadasd", "cache<<" + result);return false;}@Overridepublic void onSuccess(String result) {Log.i("get_onSuccess", "result" + result);}@Overridepublic void onError(Throwable ex, boolean isOnCallback) {}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() {//请求不管成功还是失败都会调用}});cancelable.cancel();
}
}

更多推荐

Xutils3——网络连接

本文发布于:2024-03-11 18:53:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1729654.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网络

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!