APK下载失败如果在股票浏览器后面的密码保护网站

Lyr*_*nda 3 android ruby-on-rails

我在使用rails的服务器上提供APK时遇到问题.如果下载链接放入/公开,我可以提供APK.但是,我想用密码保护它.如果我将文件移到需要HTTP身份验证的URL后面,那么它会Download Unsuccessful立即在股票浏览器上失败.

如果我安装并运行firefox,firefox可以下载APK并正确安装.

有人知道如何使用Android的股票浏览器吗?

我已经添加MIME Type到服务器:

Mime::Type.register "application/vnd.android.package-archive", :apk
Run Code Online (Sandbox Code Playgroud)

而我正在尝试在HTTP身份验证后面发送send_file:

send_file "android.apk", :type => 'application/vnd.android.package-archive'
Run Code Online (Sandbox Code Playgroud)

来自/ public的成功HTTP标头:

~  curl -s -D- android.apk -o/dev/null
HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Thu, 11 Jul 2013 20:06:43 GMT
Content-Type: application/octet-stream
Content-Length: 38673086
Last-Modified: Thu, 11 Jul 2013 20:05:12 GMT
Connection: keep-alive
ETag: "51df0ff8-24e1abe"
Accept-Ranges: bytes
Run Code Online (Sandbox Code Playgroud)

HTTP身份验证后面的HTTP头不成功:

~  curl -s -D- private/android.apk -o/dev/null      
HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Thu, 11 Jul 2013 20:11:53 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
Status: 200 OK
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1 
Content-Disposition: attachment; filename="SironaVideoSurvey.apk"
Content-Transfer-Encoding: binary
Cache-Control: private
Set-Cookie: request_method=GET; path=/
X-Request-Id: 6b99f5e5-87f8-4f8c-816c-0034265b3991
X-Runtime: 0.016140
Run Code Online (Sandbox Code Playgroud)

Noy*_*oyo 5

这看起来是Android中的一个(〜6岁!!)错误:https: //code.google.com/p/android/issues/detail?id = 1353

显然我们所能做的就是解决这个问题.互联网上还有其他可以自行找到的hacky解决方法,但我不建议将其中大多数作为一般解决方案.

也许尝试将文件扩展名更改为全部大写,如下所示:http: //www.digiblog.de/2011/04/android-and-the-download-file-headers/

这条线变成:

Content-Disposition: attachment; filename="SironaVideoSurvey.APK"

如果这不起作用,我建议您告诉您的客户使用不同的非库存(和非Chrome!)浏览器.:/ 祝好运.