直接上代码

package com.ink.manager.controller.weixin;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.ContentType;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.springframework.web.client.RestTemplate;import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
/*** 微信小程序* 校验文字/图片是否含有违法违规内容* @author Administrator*/
public class ChickContent {     /*** 检查图片是否含有违法违规内容* @param inputStream* @param contentType* @return* @throws Exception*/public static Boolean checkPic(InputStream inputStream, String contentType) throws Exception{//获取ACCESS_TOKENString accessToken = postToken();CloseableHttpClient httpclient = HttpClients.createDefault();CloseableHttpResponse response = null;HttpPost request = new HttpPost("https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + accessToken);request.addHeader("Content-Type", "application/octet-stream");byte[] byt = new byte[inputStream.available()];inputStream.read(byt);request.setEntity(new ByteArrayEntity(byt, ContentType.create(contentType)));response = httpclient.execute(request);HttpEntity httpEntity = response.getEntity();String result = EntityUtils.toString(httpEntity, "UTF-8");// 转成stringJSONObject jso = JSONObject.parseObject(result);return getResult(jso);}/*** 检查一段文本是否含有违法违规内容* @param content* @return* @throws Exception*/public static Boolean weixin_content(String content) throws Exception{//获取ACCESS_TOKENString accessToken = postToken();System.out.println(accessToken);//data数据JSONObject data = new JSONObject();data.put("content",content);RestTemplate restTemplate = new RestTemplate();String url = ("https://api.weixin.qq.com/wxa/msg_sec_check?access_token="+accessToken);String response = restTemplate.postForObject(url, data, String.class);JSONObject jso = JSONObject.parseObject(response);return getResult(jso);}/*** 校验* @param result* @return*/private static Boolean getResult(JSONObject result){Object errcode = result.get("errcode");int errCode = (Integer)errcode;if (errCode == 0) {return true;} else if (errCode != 0) {return false;}return true;}/*** 用于获取access_token* @param params* @param APIKEY 小程序id* @param SECRETKEY 小程序密钥* @return  access_token* @throws Exception*/public static String postToken() throws Exception {String APIKEY = "xxxxxxxxx";//小程序idString SECRETKEY = "xxxxxxxxxx";//小程序密钥String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APIKEY+"&secret="+SECRETKEY;URL url = new URL(requestUrl);// 打开和URL之间的连接HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setRequestMethod("POST");// 设置通用的请求属性connection.setRequestProperty("Content-Type", "application/json");connection.setRequestProperty("Connection", "Keep-Alive");connection.setUseCaches(false);connection.setDoOutput(true);connection.setDoInput(true);// 得到请求的输出流对象DataOutputStream out = new DataOutputStream(connection.getOutputStream());out.writeBytes("");out.flush();out.close();// 建立实际的连接connection.connect();// 定义 BufferedReader输入流来读取URL的响应BufferedReader in = null;if (requestUrl.contains("nlp"))in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK"));elsein = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String result = "";String getLine;while ((getLine = in.readLine()) != null) {result += getLine;}in.close();com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(result);String accesstoken=jsonObject.getString("access_token");return accesstoken;}
}

inputStream/contentType这两个参数,可以通过FileItem/MultipartFile之类的来获取
如:

 List<FileItem> list = servletFileUpload.parseRequest(request);for(FileItem item : list){Boolean flag = ChickContent.checkPic(item.getInputStream(),item.getContentType());if(flag== false){System.out.println("上传图片-----结束:该图片含有违法违规内容");}}@PostMapping("/check_image")public Boolean checkImage(@RequestPart(value = "file") MultipartFile multipartFile){Boolean flag = ChickContent.checkPic(multipartFile.getInputStream(),multipartFile.getContentType());...}

微信小程序发布时需要校验违法违规内容、图片,Java后端接口相关推荐

  1. 微信小程序外卖点餐系统酒店点菜系统加PHP后端接口地址完整项目thinkphp5.1外卖小程序

    微信小程序开发,这是一套,微信小程序外卖点餐系统酒店点菜系统加PHP后端接口地址完整项目. 前端打开授权登录机制,选择食物,加入购物车,堂食或打包,支付. 很适合初学者学习,微信小程序 开发者V:ha ...

  2. 小程序发布上线流程_微信小程序发布流程:公司、个人如何注册小程序

    如今制作微信小程序已经是非常简单的事了,即使是完全不懂技术的小白,也能利用小程序制作工具快速生成小程序,基本上选一个模板就能快速把页面搭建好. 不过,虽然小程序页面搭建很简单,但还有不少人不知道页面搭 ...

  3. 微信小程序发布上线流程以及个人小程序怎么通过审核

    小程序如何发布?微信小程序发布流程其实很简单,本文就介绍下如何发布上线流程以及个人小程序怎么通过审核 小程序在开发完成后,需要上传代码,设为体验版本,提交审核,发布上线这几个基本步骤 微信小程序发布流 ...

  4. 微信小程序-删除时提示是否确定删除

    微信小程序-删除时提示是否确定删除 效果 代码 wx.showModal({content: '确定要删除吗?',success: function (sm) {if (sm.confirm) {// ...

  5. 服务商模式下微信小程序支付时,一直报“支付验证签名失败”错误的解决办法

    在写小程序支付的时候,我是以服务商模式发起的支付,统一下单接口是调用成功的,但是在小程序调起支付的时候就报"支付验证签名失败"的错误. 主要有三个原因: 1.第二次签名用到的tim ...

  6. 微信小程序Timeline 时间线

    微信小程序Timeline 时间线 仿ElementUI的Timeline 时间线,自适应页面与文本 效果图: wxml代码: <view class="status-alarm&qu ...

  7. 微信小程序分享时,封面图片裁剪为5:4

    微信小程序分享时,封面图片裁剪为5:4 直接贴代码: //裁剪分享的图片为5:4 //传入图片地址cutShareImg:function(imgurl){let that=this;wx.getIm ...

  8. 解决微信小程序开发中wxss中不能用本地图片

    微信小程序开发中wxss中不能用本地图片,我们可以用将我们的图片传到服务器上,然后直接引用在线地址.但是当我们没有服务器时,我们可以用"图床",这个具体可以百度.这里我们用第二种方 ...

  9. 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题

    解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...

最新文章

  1. GDB调试--以汇编语言为例
  2. miniconda安装,及channels配置,安装其他软件
  3. 皮一皮:泡沫面膜,直男慎送此礼物...
  4. etsi计算机应用场景,ETSI发布最新版DVB数据广播规范,包括五大应用场景
  5. 无浮动IP的虚机出公网流量路径
  6. Python获取照片信息
  7. Machine Learning - VII. Regularization规格化 (Week 3)
  8. matlab自动交易系统 浏览
  9. Dump调试程序崩溃或闪退
  10. 长江水位查询天气查询
  11. chrome安装crxMouse鼠标右键手势插件后导致需要双击两次才能打开右键菜单
  12. Windows Hello安装和体验
  13. Unity SteamVR报错问题却影响运行的记录(Log path could not be located (112)“)
  14. 我国古代数学家张丘建在《算经》一书中曾提出过著名的“百钱买百鸡”问题,该问题叙述如下: 鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,则翁、母、雏各几何?
  15. 宏基因组测序流程(不完全版)
  16. layui内置模块(element常用元素操作)
  17. DBA运维工具-OLazy
  18. 2019年福州大学计算机专业录取分,2019年福州大学艺术类专业录取分数线
  19. [LaTex] TexLive | TexStudio | 安装及使用 | Texmaker | Overleaf在线编辑 |
  20. C# 监听USB设备插拔动态(防多触发)

热门文章

  1. poj 1840 Eqs
  2. 解决matplotlib不显示图片
  3. pycharm永久激活教程2019
  4. PHP+TP框架实现微信公众号开发之发送模板消息
  5. 太原师范学院计算机考研率,太原师范学院怎么样(太原师范学院考研率)
  6. 轻量级程序编辑器的选择:EmEditor、Editplus等---Web开发系列之工具篇
  7. 刘邦六大用人之道,很值得管理人员学习
  8. 前端根据后端返回数据导出指定样式的表格(xlsx-js-style)
  9. 基于STM32设计的健康检测设备(测温心率计步)
  10. 占用栅格地图(occupancy grid map)