java如何判断第三方的一个url会触发下载文件地址?

给第三方推送数据,希望返回json,结果设置的地址触发下载文件,需要捕获到后告警。

阅读 2.4k
5 个回答

要想让浏览器打开地址栏变成下载,有两个条件二选一满足即可:

  • 浏览器不支持的文件类型 (content-type头指定),如 application/octet-stream,这样就算是js,json这样原本可以在浏览器打开的文件,只要控制这个头一样可以让浏览器变下载
  • http header 包含 Content-Disposition:attachment,无论是什么 content-type,一律下载

顺便补充一下,content-disposition头还可以控制下载文件名是什么

你说的前端浏览器上触发下载?触发下载的本质是响应头的responseType,浏览器能够解析就给你预览了,不能解析就给你触发下载了,所以服务端设置好response的contentType,就可以控制浏览器的行为

从响应头的Content-Type字段判断,返回json一般是application/jsontext/json

仅需要判断响应头是否包含Content-Disposition即可,参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Content-Disposition

与其他Content-Type的任何响应头都没有半毛钱关系

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏