springboot 开发微信公众号(5)上传永久、临时素材

1.查看API文档

 2.将上传素材接口放入枚举类

3.使用okhttp上传file,请求接口

    public static  String sendFormByPost(String url, File file){
        RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"),file);
        MultipartBody body = new MultipartBody.Builder()
                .setType(FROM_DATA)
                .addFormDataPart("media",file.getName(),fileBody)
                .build();
        Request request = new Request.Builder()
                .post(body)
                .url(url)
                .build();
        try {
            return OK_HTTP_CLIENT.newCall(request).execute().body().string();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

 4.新建service类

    String uploadMaterial(File file,String type);

    @Override
    public String uploadMaterial(File file,String type) {
        CtBossSender ctBossSender=new CtBossSender(ApiEum.MEDIA_UPLOAD_URL.getInfo());        //获取菜单结构
        String accessToken=redisTemplate.opsForValue().get(MessageTypeEnum.ACCESS_TOKEN.getInfo());
        log.info("上传素材参数为={}", file.getName());
        NutMap nutMap = ctBossSender.sendFile(file,type,accessToken);
        log.info("上传素材返回参数为={}",JSON.toJSONString(nutMap));
        return JSON.toJSONString(nutMap);
    }
    public NutMap sendFile(File file, String type, String token){
        init(token,type);
        log.info("发送请求的url:url={}",url);
        NutMap response = JSON.parseObject(OKHttp3Utils3.sendFormByPost(url,file),NutMap.class);

        log.info("Send iot request end... responseBody={}", JSON.toJSONString(response));
        return response;
    }

    private void init(String token, String type) {
        StringBuilder reqUrl = new StringBuilder(this.url).append("?");
        reqUrl.append("&access_token=").append(token);
        reqUrl.append("&type=").append(type);
        this.url = reqUrl.toString();
    }

5.编写controller

    @PostMapping("/uploadMaterial")
    public void uploadMaterial(){
        File file=new File("D:\\msg\\mei.png");
        materialService.uploadMaterial(file,"media");
    }

6.测试

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot 是一种用于开发 Java 应用程序的框架,它简化了传统 Java 开发的繁琐过程,使开发人员可以更快速地构建高效的应用程序。UniApp 是一个跨平台的开发框架,它可以同时开发 Android、iOS 和 Web 应用程序,极大地提高了开发效率和项目的可维护性。 微信公众号开发是指基于微信平台的应用程序开发,通过微信公众号,我们可以实现与用户的互动交流、推送消息、提供各种服务等。 在使用 Spring Boot 和 UniApp 进行微信公众号开发时,可以采用前后端分离的开发模式。前端使用 UniApp 进行界面设计和用户交互的开发,后端使用 Spring Boot 进行业务逻辑的处理和数据的存储。 首先,我们需要在微信公众平台注册一个开发者账号,获取到相应的公众号信息和接口权限。 接下来,前端开发人员可以使用 UniApp 进行公众号的界面设计和交互逻辑的编写。UniApp 提供了丰富的组件和模板,可以方便地实现各种界面效果,并且可以使用 Vue.js 进行数据的绑定与处理。 后端开发人员使用 Spring Boot 进行接口开发和业务逻辑的处理。可以使用 Spring Boot 提供的丰富的功能和插件来简化开发,比如使用 Spring Data JPA 来操作数据库,使用 Spring Security 来实现用户认证与权限控制等。 最后,前后端通过接口进行数据的传输和交互,前端将用户的操作发送到后端进行处理,并将后端返回的数据展示给用户。 通过采用 Spring Boot 和 UniApp 进行微信公众号开发,可以充分发挥两者的优势,快速构建高效的应用程序,实现与用户的互动和服务。同时,由于使用的是跨平台的开发框架,可以方便地同时开发多个平台的应用程序,提高开发效率和项目的可维护性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值