大家好我正在使用org.apache.http库从网上下载文件。该文件作为条目(HttpResponce对象上的.getEntry())添加到网页中,但文件名似乎未在网页标题或网址中指定。内容类型是application / octet-stream。问题是,当我在浏览器中执行相同的操作时,它们都会获得文件名和扩展名。所以我猜它存储在二进制文件的元数据中,但我不知道如何分析它。任何关于此的提示都会有所帮助。
我获得了以下标题:
x-amz-id-2 : dZjzVbXsHqs+dUXmJ34Nahd1wNFSaZcH0RXC54kmCEvZvj8vNaxtVViDTZB+4kV8
x-amz-request-id : 81D2B0A0469A1902
Date : Sat, 31 Jan 2015 16:18:36 GMT
Last-Modified : Sat, 17 Jan 2015 17:17:52 GMT
ETag : "3a37a8e78c37b3cb575d65539db6326c"
Accept-Ranges : bytes
Content-Type : application/octet-stream
Content-Length : 23905396
Server : AmazonS3
答案 0 :(得分:0)
Content-Type entity-header字段表示媒体类型 实体主体发送给收件人,或者在HEAD方法的情况下, 如果请求是GET,则会发送的媒体类型。
Content-Disposition response-header字段已被提议为 表示如果用户,原始服务器建议默认文件名 请求将内容保存到文件中。
因此,您可以使用Content-Disposition
标头来标识默认文件名。
如果服务器没有使用Content-Disposition
标头回复,则由您来识别资源。随便打电话给你。探究内容以找出它是什么。这是一项非常重要的任务,这就是为什么服务器应该发送该信息的原因。
答案 1 :(得分:0)
(貌似)chrome可以找到名称的原因是因为.apk基于zip格式。并且zip文件包含一些header,他们可以将其标识为带有所谓Magic number的zip。