package com.arvato.service.goods.api.config;
import net.sf.json.JSONObject;
import org.junit.jupiter.api.Test;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Random;
public class Demo {
@Testpublic void Text(){ String code=wxGetQrcode("appid","secret"); //生成access_token,直接将方法(wxGetQrcode())生成的路径复制到浏览器访问生成access_token赋值到下方 String url="https://api.weixin.qq.com/wxa/getwxeunlimit?access_token=22_hhpjFnzxKY-MDLbepuY5-_eUlyuefhEvUdrHFZnqfV3QznzkxK7EMS03S4hJe0qe8-mAX2b3pypYzwxtqJJ-vW0jTKudDqw9F1LlpMPG2GAjzSFqG6t2o26QOMphpj9MhE1XcsldAQSycPUZEFMaACAVWD"; HashMapString, String params = new HashMap(); //scene:参数 params.put("scene", "id=2771"); //路径 params.put("page", "pages/goods/detail/index"); JSONObject json=JSONObject.fromObject(params); String val = ""; Random random = new Random(); for (int i = 0; i 2; i++) { val += String.valueOf(random.nextInt(10)); } wxPost(url,json,val);}//1.获取ACCESS_TOKENpublic String wxGetQrcode(String appid, String secret){ String getQrcode = "https://api.weixin.qq.ci-bin/token?grant_type=client_credential&appid="+ appid + "&secret=" + secret + ""; return getQrcode;}//第二步写入图片public void wxPost(String uri, JSONObject paramJson, String fileName) { try { URL url = new URL(uri); HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); httpURLConnection.setRequestMethod("POST");// 提交模式 // conn.setConnectTimeout(10000);//连接超时 单位毫秒 // conn.setReadTimeout(2000);//读取超时 单位毫秒 // 发送POST请求必须设置如下两行 httpURLConnection.setDoOutput(true); httpURLConnection.setDoInput(true); // 获取URLConnection对象对应的输出流 PrintWriter printWriter = new PrintWriter(httpURLConnection.getOutputStream()); printWriter.write(paramJson.toString()); // flush输出流的缓冲 printWriter.flush(); // 开始获取数据 BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream()); System.out.println(bis); File file=new File("d:/"+ fileName + ".png");// /Users/shenzhuan/logs/ OutputStream os = new FileOutputStream(file); int len; byte[] arr = new byte[1024]; while ((len = bis.read(arr)) != -1) { os.write(arr, 0, len); os.flush(); } os.close(); bis.close(); } catch (Exception e) { e.printStackTrace(); }}
}
当生成图片为1kb是,返回的是异常不是图片信息,删除。png后缀保存,找编译工具:idea或其他打开后可显示异常信息