4

応答のヘッダーは次のとおりです。

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 37888
Content-Type: application/octet-stream; charset=utf-8
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=g4tidw45yqwztc55nv0zdu55; path=/; HttpOnly
Content-Disposition: attachment; 
**filename=%e5%85%a5%e5%ad%a6%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a1%b9.doc**
X-AspNet-Version: 2.0.50727
X-Powered-By: ASP.NET
Date: Mon, 26 Nov 2012 06:24:36 GMT

このヘッダーは、Wiresharkというソフトウェアを介して取得できます。

JavaコードのDownloadManagerは次のとおりです。

lastDownloadId = manager.enqueue(new DownloadManager.Request(uri)
            .setAllowedNetworkTypes(
                    DownloadManager.Request.NETWORK_MOBILE
                            | DownloadManager.Request.NETWORK_WIFI)
            .setAllowedOverRoaming(false)
            .setTitle("MyTest")
            .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
            .setDescription("Something Useful")
            .setDestinationInExternalPublicDir(
                    Environment.DIRECTORY_DOWNLOADS, "abc.doc"));

そして、Javaコードでヘッダーを取得したいので、この応答のファイル名を取得できます。

これどうやってするの?ありがとうございました。

4

1 に答える 1

1

ヘッダーDownloadManagerを尊重しませんか?Content-Dispositionローカルファイル名がヘッダーと一致するかどうかを確認できます。HttpClientそうでない場合は、またはを使用してファイルを直接ダウンロードする必要がありますHttpURLConnection

于 2012-11-26T07:03:06.197 に答える