收藏
回答

哪位大神知道怎么获取二维码图片?我获取的一直是乱码

问题模块
API和组件


调用小程序里的获取二维码接口后,一直返回乱码,但是在postman里又可以成功获取到二维码图片。

哪位大神知道是什么问题导致获取不到二维码图片?


wx.request({

               url: url,

               data: {

                         path:"pages/test/test",

                         width:175

                     },

               method: 'POST',

               header: {

                 'content-type':'application/json'

               },

               success: function(res) {

                 console.log(res);

               }

})







最后一次编辑于  2017-02-03
回答关注问题邀请回答
收藏

8 个回答

  • 第一桶金
    第一桶金
    2017-10-12

    楼主,请问你们是怎么获取access_token的呀?

    2017-10-12
    赞同
    回复
  • 北极星
    北极星
    2017-05-28

     String URL = "二维码接口地址";
      String meetingId=request.getParameter("id");//我自己的参数,不用管
      log.info("------------------createwxaqrcode"+meetingId);
      if(meetingId!=null&&meetingId.trim().length()>0){
       String access_token;
       InputStream is=null;
       OutputStream os=null;
       try {
        access_token = getAccess_token();//获取token,我自己写的方法,把acess_token获取出来就行
        URL = URL + "?access_token=" + access_token;
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("path", "pages/index/index?meetingId="+meetingId);
        map.put("width", 375);
        JSONObject json = new JSONObject(map);
        CloseableHttpClient client = HttpClients.createDefault();
        HttpPost post = new HttpPost(URL);
        post.addHeader(HTTP.CONTENT_TYPE, "application/json");
        StringEntity se;
        se = new StringEntity(json.toString());
        se.setContentType("application/json");
        se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "UTF-8"));
        post.setEntity(se);
        StringEntity s = new StringEntity(json.toString(), "utf-8");
        s.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,
          "application/json"));
        post.setEntity(s);
        HttpResponse res = client.execute(post);
        if(res!=null){
         HttpEntity resEntity = res.getEntity();
         if (resEntity != null) {
          // 获取响应输入流
           is = resEntity.getContent();
           response.setHeader("Content-Type","application/x-msdownload");
           os=response.getOutputStream();
           //os=new FileOutputStream("D:\\test.png");//生成图片
           int count = 0;
           byte[] buffer = new byte[1024 * 8];
           while ((count = is.read(buffer)) != -1) {
            os.write(buffer, 0, count);
            os.flush();
           }
           os.close();
           is.close();
         }
        }


    我是直接把流发送到小程序端的,直接用image标签的 src属性读取的

    2017-05-28
    赞同
    回复
  • LGX
    LGX
    2017-05-27

    那后台怎么解析这串乱码啊???

    2017-05-27
    赞同
    回复
  • lufeng
    lufeng
    2017-04-01

    @4楼 怎么把Content-disposition 传输给后端。?

    2017-04-01
    赞同
    回复
  • Ida
    Ida
    2017-02-14

    data是报错信息。 没有图片,你可以用postman试试,图片是保存在Content-disposition →attachment; filename="_app_../cardDetail/cardDetail?cardid=6437&type=cn.jpg"  ,需要后端服务器将图片保存后,将图片名称发到前端。

    2017-02-14
    赞同
    回复
  • 北极星
    北极星
    2017-02-14

     请问,data里的那些字符串是什么?是base64字符串吗?将这些字符串传到后台然乎生成图片,再由前台调用吗?

    2017-02-14
    赞同
    回复
  • Ida
    Ida
    2017-02-03

    谢谢大神! 那前端可以直接从接口取到图片地址吗?

    2017-02-03
    赞同
    回复
  • JAM1995
    JAM1995
    2017-02-03

    要在后端保存图片到服务器本地,然后调用链接

    2017-02-03
    赞同
    回复