1使用okhttp3发送http请求,添加依赖

implementation 'com.squareup.okhttp3:okhttp:3.10.0'

2.创建回调接口

ackage com.cmeim.pcp.pda.callback;import org.json.JSONException;/** * 自定义回调 */public interface ResponseCallBack {    void success(String json) throws JSONException;    void error(String json);}

3.创建一个工具类

package com.cmeim.pcp.pda.utils;import android.os.Handler;import android.util.Log;import com.cmeim.pcp.pda.callback.ResponseCallBack;import com.cmeim.pcp.pda.dialog.CustomProgressDialog;import com.cmeim.pcp.pda.vo.HttpUrlVo;import org.jetbrains.annotations.NotNull;import org.json.JSONException;import java.io.IOException;import java.util.List;import java.util.Map;import java.util.concurrent.TimeUnit;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Cookie;import okhttp3.CookieJar;import okhttp3.FormBody;import okhttp3.HttpUrl;import okhttp3.MediaType;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;/** * Description : OkHttp网络连接封装工具类 * Author :  * Date   : 2020年7月1日15:51:20 */public class OkHttpUtils {    private static final String TAG = "OkHttpUtils";//handler主要用于异步请求数据之后更新UI    private static  Handler handler = new Handler();    public static void getAsync(String url,ResponseCallBack responseCallBack) {        OkHttpClient client = new OkHttpClient();        Log.i(TAG,"请求地址===》"+url);        Request request = new Request                .Builder()                .addHeader("Cookie","token="+ HttpUrlVo.TOKEN)                .url(url)                .build();        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(@NotNull Call call, @NotNull IOException e) {                Log.e(TAG,"响应失败===》"+e.getMessage());                handler.post(()->{                    responseCallBack.error(e.getMessage());                });            }            @Override            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {                String respBody=response.body().string();                Log.i(TAG,"响应成功===》"+respBody);                handler.post(()->{                    try {                        responseCallBack.success(respBody);                    } catch (JSONException e) {                        e.printStackTrace();                        ActivityUtils.showLogToast("程序出现异常:"+e.getMessage());                    }                });            }        });    }    /**     * 表单提交数据     * @param url 请求地址     * @param formData 表单回调     * @param responseCallBack 响应回调     */    public static void postAsyncFormData(String url, Map<String,String> formData, ResponseCallBack responseCallBack) {        OkHttpClient client = new OkHttpClient().newBuilder().                callTimeout(30, TimeUnit.SECONDS)                .build();        FormBody.Builder builder = new FormBody.Builder();        StringBuffer showData=new StringBuffer();        for (String key:formData.keySet()){            builder.add(key,formData.get(key));            showData.append("   "+key+":"+formData.get(key));        }        FormBody formBody = builder                .build();        Request request = new Request                .Builder()                .addHeader("Cookie","token="+ HttpUrlVo.TOKEN)                .url(url)                .post(formBody)                .build();        Log.i(TAG,"开始发送请求:请求地址【"+url+"】,请求参数==>"+showData);        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(@NotNull Call call, @NotNull IOException e) {                Log.e(TAG,"响应失败===》"+e.getMessage());                handler.post(()->{                        responseCallBack.error(e.getMessage());                });            }            @Override            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {                String respBody=response.body().string();                Log.i(TAG,"响应成功===》"+respBody);                handler.post(()->{                    try {                        responseCallBack.success(respBody);                    } catch (JSONException e) {                        ActivityUtils.showLogToast("程序出现异常:"+e.getMessage());                    }                });            }        });    }    /**     * json提交数据     * @param url 请求地址     * @param json json数据     * @param responseCallBack 响应回调     */    public static void postAsyncJson(String url, String json, ResponseCallBack responseCallBack) {        OkHttpClient client = new OkHttpClient();        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json);        Request request = new Request.                Builder()                .url(url)                .addHeader("Cookie","token="+ HttpUrlVo.TOKEN)                .post(requestBody)                .build();        Log.i(TAG,"开始发送请求:请求地址【"+url+"】,请求参数==>"+json);        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(@NotNull Call call, @NotNull IOException e) {                Log.e(TAG,"响应失败===》"+e.getMessage());                handler.post(()->{                    responseCallBack.error(e.getMessage());                });            }            @Override            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {                String respBody=response.body().string();                Log.i(TAG,"响应成功===》"+respBody);                handler.post(()->{                    try {                        responseCallBack.success(respBody);                    } catch (JSONException e) {                        ActivityUtils.showLogToast("程序出现异常:"+e.getMessage());                    }                });            }        });    }    /**     * json提交数据     * @param url 请求地址     * @param json json数据     * @param responseCallBack 响应回调     */    public static void putAsyncJson(String url, String json, ResponseCallBack responseCallBack) {        OkHttpClient client = new OkHttpClient();        RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), json);        Request request = new Request.                Builder()                .url(url)                .addHeader("Cookie","token="+ HttpUrlVo.TOKEN)                .put(requestBody)                .build();        Log.i(TAG,"开始发送请求:请求地址【"+url+"】,请求参数==>"+json);        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(@NotNull Call call, @NotNull IOException e) {                Log.e(TAG,"响应失败===》"+e.getMessage());                handler.post(()->{                    responseCallBack.error(e.getMessage());                });            }            @Override            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {                String respBody=response.body().string();                Log.i(TAG,"响应成功===》"+respBody);                handler.post(()->{                    try {                        responseCallBack.success(respBody);                    } catch (JSONException e) {                        ActivityUtils.showLogToast("程序出现异常:"+e.getMessage());                    }                });            }        });    }    /**     * json提交数据     * @param url 请求地址     * @param formData 表单数据     * @param responseCallBack 响应回调     */    public static void putAsyncForm(String url, Map<String,String> formData, ResponseCallBack responseCallBack) {        OkHttpClient client = new OkHttpClient().newBuilder().                callTimeout(30, TimeUnit.SECONDS)                .build();        FormBody.Builder builder = new FormBody.Builder();        StringBuffer showData=new StringBuffer();        for (String key:formData.keySet()){            builder.add(key,formData.get(key));            showData.append("   "+key+":"+formData.get(key));        }        FormBody formBody = builder                .build();        Request request = new Request                .Builder()                .addHeader("Cookie","token="+ HttpUrlVo.TOKEN)                .url(url)                .put(formBody)                .build();        Log.i(TAG,"开始发送请求:请求地址【"+url+"】,请求参数==>"+showData);        client.newCall(request).enqueue(new Callback() {            @Override            public void onFailure(@NotNull Call call, @NotNull IOException e) {                Log.e(TAG,"响应失败===》"+e.getMessage());                handler.post(()->{                    responseCallBack.error(e.getMessage());                });            }            @Override            public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {                String respBody=response.body().string();                Log.i(TAG,"响应成功===》"+respBody);                handler.post(()->{                    try {                        responseCallBack.success(respBody);                    } catch (JSONException e) {                        ActivityUtils.showLogToast("程序出现异常:"+e.getMessage());                    }                });            }        });    }}

4.测试post表单提交调用

Map<String, String> map = new HashMap<>();map.put("pickId",  "pickId");map.put("qty",  "qty");map.put("stockId", "stockId");OkHttpUtils.postAsyncFormData("http://localhost:8080/mm/pick/receive/pkgBar", map, new ResponseCallBack() {            @Override            public void success(String json) throws JSONException {                Log.e("响应数据",json)            }            @Override            public void error(String json) {            }        });

更多相关文章

  1. 【Android】Android中的数据传递(2)
  2. 在android里保存数据的三种形式(Saving Data)
  3. 引用自定义资源需注意数据类型
  4. android常用数据库字段描述
  5. Android获取/清除应用数据
  6. android SQLite数据库使用实例
  7. android中操纵sqlite数据库
  8. Android图形系统(八)-app与SurfaceFlinger共享UI元数据过程
  9. android 开发-数据存储之文件存储

随机推荐

  1. Android控件及API说明(二)
  2. Android(安卓)浅谈MatrixCursor
  3. Android(安卓)Studio - 第四十四期 倒计
  4. SJ64 拿起工具(Android(安卓)Studio)开始造
  5. Android(安卓)app实现重启
  6. Android: android sensors, HAL范例
  7. Android移动端音视频的快速开发教程(五)
  8. android RelativeLayout 布局属性详解
  9. Android开发环境搭建及入门相关
  10. ToggleButton控件