use*_*035 8 https groovy download
我需要下载一个文件(例如这个:https://www.betaseries.com/srt/391160),所以我在网上找到了不同的方法:
def download(String remoteUrl, String localUrl)
{
def file = new FileOutputStream(localUrl)
def out = new BufferedOutputStream(file)
out << new URL(remoteUrl).openStream()
out.close()
}
Run Code Online (Sandbox Code Playgroud)
要么
def download(String remoteUrl, String localUrl) {
new File("$localUrl").withOutputStream { out ->
new URL(remoteUrl).withInputStream { from -> out << from; }
}
}
Run Code Online (Sandbox Code Playgroud)
我看到文件已创建但文件大小总是等于1KB我该怎么办呢?
预先感谢,
本杰明
所以,它看起来像网址https://www.betaseries.com/srt/391160重定向到http://www.betaseries.com/srt/391160(http,而不是https)
所以你要抓的是重定向响应(1K)而不是完整的响应图像.
您可以这样做以获得实际图像:
def redirectFollowingDownload( String url, String filename ) {
while( url ) {
new URL( url ).openConnection().with { conn ->
conn.instanceFollowRedirects = false
url = conn.getHeaderField( "Location" )
if( !url ) {
new File( filename ).withOutputStream { out ->
conn.inputStream.with { inp ->
out << inp
inp.close()
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15659 次 |
| 最近记录: |