ウィジェットコードピットレコード

4242 ワード

くだらないことを言わないで、私は多くの人がカードを持っていると信じて、微信のインタフェースから写真のbuffer(文字化け)を取って、それからどうすればいいか分かりません。私も1日かけてやっと何が起こっているのか分かりません。の自分が少し愚かで、仕方がない。直接コード:


 
try {
            String appId = ResourceUtil.getConfigByName("wx.mini.appId");
            String secret= ResourceUtil.getConfigByName("wx.mini.secret");
            String getAccessTokenURL = ResourceUtil.getConfigByName("wx.mini.getQrCode");
            String reqAccessTokenURL = String.format(getAccessTokenURL,appId,secret);
            String respResult =  this.get(reqAccessTokenURL);
            JSONObject respResultJsonObject = (JSONObject) JSON.parse(respResult);
            logger.info(respResultJsonObject);
            Object tokenObject =  respResultJsonObject.get("access_token");
            String token = tokenObject.toString();
            Map resultObj = new HashMap();
            PrintWriter out = null;
            //BufferedReader in = null;
            InputStream in = null;
            String result = "";
            try {
                URL realUrl = new URL("https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="+token);
                //  URL 
                URLConnection conn = realUrl.openConnection();
                //  
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                //  POST 
                conn.setDoOutput(true);
                conn.setDoInput(true);
                //  URLConnection 
                out = new PrintWriter(conn.getOutputStream());
                //  
                JSONObject jsonObject = new JSONObject();
                jsonObject.put("scene", ""); // 
                jsonObject.put("page","");// 
                jsonObject.put("width",300);
                out.print(jsonObject);
                // flush 
                out.flush();
                in = conn.getInputStream();
                byte[] data = null;
                //  
                try {
                    ByteArrayOutputStream swapStream = new ByteArrayOutputStream();
                    byte[] buff = new byte[100];
                    int rc = 0;
                    while ((rc = in.read(buff, 0, 100)) > 0) {
                        swapStream.write(buff, 0, rc);
                    }
                    data = swapStream.toByteArray();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (in != null) {
                        try {
                            in.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
                return new String(Base64.encodeBase64(data));
            } catch (Exception e) {
                System.out.println("  POST  !" + e);
                e.printStackTrace();
            }
            //  finally 、 
            finally {
                try {
                    if (out != null) {
                        out.close();
                    }
                    if (in != null) {
                        in.close();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
//            resultObj.put("result",result);
            return result;
        } catch (Exception e) {
            e.printStackTrace();
            logger.error(e.getMessage());
            return null;
        }

上のコードは1つのクラスに入れるだけで、直接実行できます。赤い部門のコードは、微信インタフェースから返されたbufferをbase 64文字列に変換することです。


オンライン変換ツールで画像を直接見ることができますhttps://tool.jisuapi.com/base642pic.html


またはbase 64文字列をウィジェットのフロントエンドに返し、