问题描述

要实现微信扫二维码下载pdf文件的功能,苹果手机微信扫码后,第一次扫码,提示下载;后续扫码有时pdf文件被空白页遮挡,有时正常;,用安卓手机微信扫码、或者用苹果手机支付宝扫码都是正常,怀疑是缓存作祟,以下这个问题的解决过程。

扫码下载pdf文件的流程

二维码的地址,是我方java端系统地址,扫码后,微信会请求java端,然后重定向到第三方文件服务器地址,伪代码

@GetMapping("/download/pdf")
public void downloadPdf(HttpServletResponse response){response.sendRedirect(url);
}

解决

最开始怀疑二维码请求被缓存,所以响应添加了禁止缓存,但无效。

@GetMapping("/download/pdf")
public void downloadPdf(HttpServletResponse response){response.setHeader("Cache-Control", "no-store,max-age=0");response.sendRedirect(url);
}

然后就怀疑重定向地址被缓存,所以添加了时间戳,生效了!

@GetMapping("/download/pdf")
public void downloadPdf(HttpServletResponse response){response.sendRedirect(url+"?t="+System.currentTimeMillis());
}

至此可以推断出,微信缓存了重定向地址,扫码后展示了已下载文件,但因为内部机制又被空白页遮挡,只要重定向地址加上时间戳就防止缓存了。

苹果手机微信扫码下载pdf文件,出现空白页。相关推荐

  1. 微信扫码下载app的前端界面代码

    下载app二维码扫码下载,当用户微信扫码下载时 微信不能直接下载应用,所以做了一个过渡界面给用户来交互响应.效果图如下图: html的源代码如下. <!DOCTYPE html> < ...

  2. 微信扫码下载APP(带有蒙层)

    微信扫码下载APP APP下载 <div class="photo" id="photo"><div class="buttonTo ...

  3. 解决微信扫码下载的两个方法

    解决微信扫码下载有两个方法:一是去腾讯开发平台http://open.qq.com/上传自己的应用,二是弄一个提示页,提示用户用其他浏览器打开链接. 上传应用到腾讯开发平台 把应用上传到腾讯开发平台, ...

  4. pdf文件删除空白页技巧介绍

    工作中,我们往往需要接触到各式各样的办公文件,PDF格式文件就是其中的一种.当我们打开了一份PDF文件,却发现里面有许多的空白页.这时候,我们应该如何进行PDF删除页面的操作呢? 1.如果想要快速删除 ...

  5. 微信扫码下载APK解决方案

    方案一: 扫码进入一个普通的过渡页面,并且提示用户点击右上角"在浏览器中打开",进入下载页面. 方案二: 将APP申请加入腾讯的应用宝,申请通过后可直接用应用宝管理后台提供给你的的 ...

  6. PDF文件删除空白页

    近期将一份pdf删掉最后一页空白页,找遍百度,都要下载PDF编辑器,没时间啊,重新回忆学长之间教过的方法,终于给试出来了 TAT 短短几个步骤,折腾好久,记录一下,以防又给忘了TAT 使用window ...

  7. 微信扫码下载iosAPP

    1.首先在应用宝上传你的安卓APP应用,AppStore已经有了APP 2.进入应用宝app应用管理中心,点击"微下载",然后里面的微下载链接地址就可以用了,可以看到ios可以通过 ...

  8. 内嵌式js微信扫码登录及自定义样式

    关于微信扫码登录网站的功能介绍,请阅读官方文档[网站应用微信登录开发指南] 根据官方文档我们知道微信扫码登录有两种方式 一种是跳转到一个大黑屏二维码界面进行扫码登录: (参见博客:PHP实现跳转式微信 ...

  9. Word转成PDF后有很多空白页怎么办?

    很多很在编写报告以及撰写论文时都会先新建一个Word文档编辑好内容后,再将这个Word文档转换成PDF文件.这样PDF文件内容就不会被别人随意修改掉.但有时将Word文档转成PDF后会出现空白页要怎么 ...

最新文章

  1. 皮一皮:这个TONY有点厉害!
  2. python【蓝桥杯vip练习题库】ALGO-71比较字符串
  3. php和python交互-python与php的比较
  4. 透过汇编另眼看世界之函数调用
  5. Vector shrink 请求容器降低其容量和size匹配 shrink_to_fit();
  6. weui-switch开关控件,表单提交后如何取值
  7. 平衡二叉查找树插入节点操作( AVLTree ):旋转、调整平衡
  8. 线程可警告状态以及APC队列
  9. Python flask 特殊装饰器 @app.before_request 和 @app.after_request 以及@app.errorhandler介绍
  10. 用vue和node写的简易购物车
  11. C#之多态与继承汽车类
  12. 谈谈头条创作者最近几个月的一些改变吧
  13. 力扣——LCP 37. 最小矩形面积(困难)
  14. 大数据真实电商数据仓库全流程开发详解
  15. 向前迈进!走入GC世界:G1 GC原理深入解析
  16. Java内存泄漏分析系列之七:使用MAT的Histogram和Dominator Tree定位溢出源
  17. 聊聊手机之--小米6
  18. [转载]Navicat12.1系列破解教程,Navicat12.1.16破解亲测有效!!
  19. 前端后端傻傻分不清楚,这里给你答案
  20. 微信小程序01:关于错误Page pages/goods_list/index has not been registered yet.的原因

热门文章

  1. Linux网卡配置文件-参数详解
  2. 基于XGBoost的句子相似度匹配
  3. 【数据结构与算法图文动画详解】终于可以彻底弄懂:红黑树、B-树、B+树、B*树、满二叉树、完全二叉树、平衡二叉树、二叉搜索树...
  4. 【Linux篇】sed命令详解
  5. 第四阶段--Spring学习-03
  6. 拉卡拉支付发力高频支付场景
  7. 4、门禁系统安装与调试知识大全
  8. 使用kt-connetct实现k8s网络互通
  9. linux 解压 zip、改权限和复制
  10. 几个欧洲人是如何于百万军中取印加国王手机的?