收藏
回答

获取二维码方法B,返回的数据怎么接收处理??

现在小程序没有发布,传参:scene:XXX;

调用B方法接口返回的数据直接打印,结果电脑都卡死了,打印一些乱码的东西;

保存到本地,结果文件格式不正确;

我应该怎么处理??


最后一次编辑于  2018-08-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 卢霄霄
    卢霄霄
    2018-08-28

    比如 接口是 https://getQRCode.com/getqrcode

    <image src="https://getQRCode.com/getqrcode" ></image>

    2018-08-28
    赞同
    回复 5
    • 不败的魔术师
      不败的魔术师
      2018-08-28

      请教没有不靠其他url解决的方法么?

      2018-08-28
      回复
    • 卢霄霄
      卢霄霄
      2018-08-29回复不败的魔术师

      由于下面截图里的缘故,我想不到。。


      2018-08-29
      回复
    • 不败的魔术师
      不败的魔术师
      2018-08-29回复卢霄霄

      感谢。我调通了可以显示。不过估计上线了就不能访问这个域名了。。 奇怪,我记得文档里写着小程序访问这个无需配置来着

      2018-08-29
      回复
    • 卢霄霄
      卢霄霄
      2018-08-29回复不败的魔术师

      看花眼了吧,比如,web-view打开公众号的文章,也是微信的某个域名,不需要加白名单

      2018-08-29
      回复
    • 不败的魔术师
      不败的魔术师
      2018-08-29回复卢霄霄

      没错。。只是测试工具里取消了域名限制才通的。。  不知道那个新的“云开发”里能不能调用这个api

      2018-08-29
      回复
  • 不败的魔术师
    不败的魔术师
    2018-08-28

    同问。。

    2018-08-28
    赞同
    回复 2
    • L
      L
      2018-08-29

      这个博客里写的很清楚,可以保存到本地:

      https://blog.csdn.net/w410589502/article/details/77702358/


      我是后来保存到七牛了,用字符数组上传

      /**
           * 获取二维码,返回的是  byte[]
           * @param sceneStr
           * @param page
           * @param accessToken
           * @param savePath
           * @return
           */
          public static byte[] getMiniQrCode(String sceneStr,String page ,String accessToken,String savePath) {
              RestTemplate rest = new RestTemplate();
              try {
                  String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
                  Map<String, Object> param = new HashMap<>();
                  param.put("scene", sceneStr);
                  if(StringUtils.isNoneBlank(page)){
                      param.put("page", page);
                  }
                  param.put("width", 430);
                  param.put("auto_color", false);
                  Map<String, Object> line_color = new HashMap<>();
                  line_color.put("r", 0);
                  line_color.put("g", 0);
                  line_color.put("b", 0);
                  param.put("line_color", line_color);
                  System.out.println("调用生成微信URL接口传参:" + JsonHelper.getJSONString(param));
                  logger.info("调用生成微信URL接口传参:" + JsonHelper.getJSONString(param));
                  MultiValueMap headers = new LinkedMultiValueMap<>();
                  HttpEntity requestEntity = new HttpEntity(param, headers);
                  ResponseEntity<byte[]> entity = rest.exchange(url, HttpMethod.POST, requestEntity, byte[].class,
                          new Object[0]);
                  System.out.println("调用小程序生成微信永久小程序码URL接口返回结果:" + JsonHelper.getJSONString(entity.getBody()));
                  logger.info("调用小程序生成微信永久小程序码URL接口返回结果:" + JsonHelper.getJSONString(entity.getBody()));
                  return entity.getBody();
              } catch (Exception e) {
                  logger.info("调用小程序生成微信永久小程序码URL接口异常" + JsonHelper.getJSONString(e));
              }
              return null;
          }




      /**
           * 字节数组上传
           * @param key
           * @param uploadBytes
           * @return
           * @throws QiniuException
           */
          public static String simpleUploadBytes(String key,  byte[] uploadBytes) throws QiniuException {
              String upToken = getUpToken();
              try {
                  // 构造一个带指定Zone对象的配置类
                  Configuration cfg = new Configuration(Zone.zone0());
                  // ...其他参数参考类注释
                  UploadManager uploadManager = new UploadManager(cfg);
                  System.out.println(String.format("simpleUploadBytes key[%s]  upToken[%s]", key, upToken));
                  logger.info(String.format("simpleUploadBytes key[%s]  upToken[%s]", key, upToken));
                  Response response = uploadManager.put(uploadBytes, key, upToken);
                  // 解析上传成功的结果
                  DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
                  System.out.println(String.format("simpleUploadBytes 返回结果:response:[%s] key:[%s] hash:[%s]", JsonHelper.getJSONString(response), putRet.key,
                          putRet.hash));
                  logger.info(String.format("simpleUploadBytes 返回结果:response:[%s] key:[%s] hash:[%s]", JsonHelper.getJSONString(response), putRet.key,
                          putRet.hash));
                  // 拼接完整路径
                  String fullUrl = QI_NIU_RESULT_URL_PRE + putRet.key;
                  System.out.println("simpleUploadBytes 返回最终url:" + fullUrl);
                  logger.info("simpleUploadBytes 返回最终url:" + fullUrl);
                  return fullUrl;
              } catch (QiniuException e) {
                  e.printStackTrace();
                  System.out.println("上传七牛失败:" + JsonHelper.getJSONString(e));
                  logger.info("上传七牛失败:" + JsonHelper.getJSONString(e));
              }
              return "";
          }
      2018-08-29
      回复
    • 不败的魔术师
      不败的魔术师
      2018-08-31回复L

      谢啦 本来不想用第三方,但是发现微信禁用了小程序自己访问的api。

      2018-08-31
      回复