okHttp3 传输File文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lp15203883326/article/details/82880279

业务中难免会调用微信啊阿里云的... 所谓人家的接口,我目前着手的就是要向微信发送请求获取素材信息。所以这个时候就用到了okHttp3来帮助我们发送http的get啊post请求了。

遇到的一个比较棘手的问题就是该项目的HttpUtil中没有传输File的方法。所以呢最后在负责人的帮助下,就解决了这个问题:

日常ps下:参数讲解!!!url就是发送请求的url,file就是你要传输的文件,typeName是文件的名字,

FROM_DATA是啥?是这个:

private static final MediaType FROM_DATA = MediaType.parse("multipart/form-data");

2.png是啥?是上传的文件的名字。。。(对这个感兴趣的小朋友可以去查看下文档哦~我真是懒得查了哈哈哈哈我的目的就是传上去就成,别的I dont care) 

    public static  String sendFromDataPostRequest(String url, File file,String typeName)throws IOException{
        RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"),file);
        MultipartBody body = new MultipartBody.Builder()
                            .setType(FROM_DATA)
                            .addFormDataPart(typeName,"2.png",fileBody)
                            .build();
        Request request = new Request.Builder()
                            .post(body)
                            .url(url)
                            .build();

        return getClient().newCall(request).execute().body().string();



    }

追加我的调用:

    //添加新图片素材
    @Override
    public JSONObject getMediaId(String type,File file) {
        JSONObject responseData =null;
        try{
            //str = HttpUtils.sendFromDataPostRequest(UrlConstant.addMaterialUrl+"?access_token="+getAccessToken()+"&type="+type,file,"media");
            responseData = JSONObject.fromObject(HttpUtils.sendFromDataPostRequest(UrlConstant.addMaterialUrl+"?access_token="+getAccessToken()+"&type="+type,file,"media")) ;
        }catch (IOException e){
            e.printStackTrace();
        }
        //return responseData;
        return responseData;
    }

猜你喜欢

转载自blog.csdn.net/lp15203883326/article/details/82880279
今日推荐