安卓okhttp如何上传文件、图片以及数据

前言

由于前段时间参加学校比赛,都没有时间来更新博客,这里给大家带来一篇非常实用的文章

本文类容

安卓如何通过okhttp2.0上传数据、文件,而我们的后端采用的是spring boot2.0来接收我们的上传的数据

前期准备

1、导入箭头所指向的这两个包,如果没有则点击这里进行下载https://download.csdn.net/download/weixin_43055096/11148006
在这里插入图片描述

2、由于我们要上传文件图片,所以我们必须要加入权限,而安卓6.0之后对权限要求很严格,不仅要在xml里面配置,还要写到我们的程序中。(按照小编的写法写好我们的xml,后面的还会说道我们手动权限的配置)在这里插入图片描述

之后我们就可以开始我们的数据上传了。

这里小编给大家写了一个工具类,

package activity.sleephousekeeper.Utils;


import android.util.Log;

import java.io.File;
import java.util.Map;
import java.util.Set;

import okhttp3.Call;
import okhttp3.FormBody;
import okhttp3.Headers;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;


public class OkhttpUtil {
   

    private static OkhttpUtil instance;

    private OkhttpUtil(){
   

    }
    public static OkhttpUtil getInstance(){
   
        if(instance == null){
   
            instance = new OkhttpUtil();
        }
        return instance;
    }

    /**
     * 通过get 提交
     * @param url
     * @return
     */
    public Call get(String url){
   
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(url)
                .build();
        Call call = client.newCall(request);
        return call;
    }

    /**
     * 通过post方式提交表单
     * @param url 提交地址
     * @param map 表单数据
     * @return Call
     */
    public Call post(String url, Map<String,Object> map){
   
        OkHttpClient client = new OkHttpClient();
        FormBody.Builder formBody = new FormBody.Builder();//创建表单请求体
        Set<String> keys = map.keySet();
        for(String k:keys){
   
            formBody.add(k,map.get(k).toString());
        }

        Request request = new Request.Builder()
                                    .url(url)
                                    .post(formBody.build())
                                    .build();
        return client.newCall(request);
    }

    /**
     * 通过post提交json数据
     * @param url 提交地址
     * @param json 提交的实例
     * @return call
     */
    public Call post(String url,String json){
   
        OkHttpClient client = new OkHttpClient();
        RequestBody requestBody = FormBody.create(MediaType.parse("application/json; charset=utf-8")
               
  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值