okhttputlis简单使用
来源:互联网 发布:牛彩纽约源码 编辑:程序博客网 时间:2024/06/16 22:27
依赖库地址:https://github.com/hongyangAndroid/okhttputils
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="lianyuan.com.okhttpdemo.MainActivity"> <Button android:id="@+id/btn_get" android:layout_width="match_parent" android:layout_height="48dp" android:text="okhttp-utlis:get" /> <Button android:id="@+id/btn_post" android:layout_width="match_parent" android:layout_height="48dp" android:text="okhttp-utlis:get" /> <Button android:id="@+id/btn_downloadFile" android:layout_width="match_parent" android:layout_height="48dp" android:text="okhttp-utlis:downloadFile" /> <Button android:id="@+id/btn_multiFileUpload" android:layout_width="match_parent" android:layout_height="48dp" android:text="okhttp-utlis:multiFileUpload" /> <ProgressBar android:id="@+id/progressBar" android:layout_width="match_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal"/> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" /></LinearLayout>
package lianyuan.com.okhttpdemo;import android.app.Activity;import android.os.Bundle;import android.os.Environment;import android.support.annotation.Nullable;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.ProgressBar;import android.widget.TextView;import android.widget.Toast;import com.zhy.http.okhttp.OkHttpUtils;import com.zhy.http.okhttp.callback.FileCallBack;import com.zhy.http.okhttp.callback.StringCallback;import java.io.File;import java.util.HashMap;import java.util.Map;import okhttp3.Call;import okhttp3.Request;import static android.content.ContentValues.TAG;public class MainActivity extends Activity implements View.OnClickListener { private TextView tv; private Button btn_get; private Button btn_post; private String mBaseUrl = "http://192.168.31.242:8888/okHttpServer/"; private Button btn_downloadFile; private ProgressBar progressBar; private Button btn_multiFileUpload; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); btn_get = (Button) findViewById(R.id.btn_get); btn_post = (Button) findViewById(R.id.btn_post); btn_downloadFile = (Button) findViewById(R.id.btn_downloadFile); btn_multiFileUpload = (Button) findViewById(R.id.btn_multiFileUpload); progressBar = (ProgressBar) findViewById(R.id.progressBar); btn_get.setOnClickListener(this); btn_post.setOnClickListener(this); btn_downloadFile.setOnClickListener(this); btn_multiFileUpload.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn_get://get请求 getOkhttpUtlis(); break; case R.id.btn_post://post请求 postOkhttpUtlis(); break; case R.id.btn_downloadFile://下载大文件 downLoadFile(); break; case R.id.btn_multiFileUpload://上传多文件 multiFileUpload(); break; } } public void getOkhttpUtlis() { String url = "http://www.zhiyun-tech.com/App/Rider-M/changelog-zh.txt"; url = "http://www.391k.com/api/xapi.ashx/info.json?key=bd_hyrzjjfb4modhj&size=10&page=1"; OkHttpUtils .get() .url(url) .id(100) .build() .execute(new MyStringCallback()); } public void postOkhttpUtlis() { String url = "http://www.zhiyun-tech.com/App/Rider-M/changelog-zh.txt"; url = "http://www.391k.com/api/xapi.ashx/info.json?key=bd_hyrzjjfb4modhj&size=10&page=1"; OkHttpUtils .post() .url(url) .id(100) .build() .execute(new MyStringCallback()); } private void downLoadFile() { String url = "http://vfx.mtime.cn/Video/2016/07/24/mp4/160724055620533327_480.mp4"; OkHttpUtils// .get()// .url(url)// .build()// .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(), "okhttp-utils-test.mp4")// { @Override public void onBefore(Request request, int id) { } @Override public void inProgress(float progress, long total, int id) { progressBar.setProgress((int) (100 * progress)); Log.e(TAG, "inProgress :" + (int) (100 * progress)); } @Override public void onError(Call call, Exception e, int id) { Log.e(TAG, "onError :" + e.getMessage()); } @Override public void onResponse(File file, int id) { Log.e(TAG, "onResponse :" + file.getAbsolutePath()); } }); } public void multiFileUpload() { File file = new File(Environment.getExternalStorageDirectory(), "messenger_01.png"); File file2 = new File(Environment.getExternalStorageDirectory(), "test1#.txt"); if (!file.exists()) { Toast.makeText(MainActivity.this, "文件不存在,请修改文件路径", Toast.LENGTH_SHORT).show(); return; } Map<String, String> params = new HashMap<>(); params.put("username", "张鸿洋"); params.put("password", "123"); String url = mBaseUrl + "user!uploadFile"; OkHttpUtils.post()// .addFile("mFile", "messenger_01.png", file)// .addFile("mFile", "test1.txt", file2)// .url(url) .params(params)// .build()// .execute(new MyStringCallback()); } public class MyStringCallback extends StringCallback { @Override public void onBefore(Request request, int id) { setTitle("loading..."); } @Override public void onAfter(int id) { setTitle("Sample-okHttp"); } @Override public void onError(Call call, Exception e, int id) { e.printStackTrace(); tv.setText("onError:" + e.getMessage()); } @Override public void onResponse(String response, int id) { Log.e(TAG, "onResponse:complete" + response); tv.setText("onResponse:" + response); switch (id) { case 100: Toast.makeText(MainActivity.this, "http", Toast.LENGTH_SHORT).show(); break; case 101: Toast.makeText(MainActivity.this, "https", Toast.LENGTH_SHORT).show(); break; } } @Override public void inProgress(float progress, long total, int id) { Log.e(TAG, "inProgress:" + progress);// mProgressBar.setProgress((int) (100 * progress)); } }}
阅读全文
0 0
- okhttputlis简单使用
- 简单使用
- 简单使用
- 简单使用
- springBoot简单学习使用;curl简单使用
- java使用redis简单使用
- spring 简单使用AOC使用
- logstash使用之简单使用
- 简单易懂的使用
- ant的简单使用
- jUDDI 简单安装使用
- 简单使用有限自动机
- 简单使用_dopostback函数
- Log4j的简单使用
- msconfig简单使用
- DOM对象简单使用
- TCPDUMP的简单使用
- 使用easymock简单举例
- 微软五笔调出,中英文切换快捷键
- Eclipse中安装Hibernate Tools
- ssh免密钥登录
- 字符串格式时间 比较大小
- struts2的Action的相关配置
- okhttputlis简单使用
- PyTorch使用指定的GPU
- 命令行运行java程序
- LINTCODE——不同的二叉查找树
- 计算机专业保研复试面试---大体流程介绍
- Ubuntu 安装 Nginx
- 第三周 项目3-求集合并集
- 加载一个类时,其内部类是否同时被加载?静态内部类单例模式
- 大型网站系统架构演化之路