gpt4 book ai didi

java - HTTP响应附件下载完成通知

转载 作者:行者123 更新时间:2023-12-01 14:25:58 27 4
gpt4 key购买 nike

在LittleProxy实现中,是否有一个功能可以让我们收到文件下载完成的通知?

目前我正在使用下面的代码将附件保存到 HTTP 响应消息。我不确定这个 chanBuff.getBytes(...) 是阻塞调用还是非阻塞调用。

ChannelBuffer chanBuff = response.getContent();
FileOutputStream outputStream = new FileOutputStream(outputFileName);
chanBuff.getBytes(0, outputStream, chanBuff.readableBytes());
outputStream.close();

当我尝试在这段代码之后立即处理保存的文件时,它会抛出异常。如果我等到文件完全下载并保存在磁盘上,也许问题可能会自动解决。

java.io.IOException: Channel not open for writing - cannot extend file to required size
at sun.nio.ch.FileChannelImpl.map(Unknown Source)
at com.googlecode.mp4parser.AbstractBox.parse(AbstractBox.java:109)
at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:118)
at com.coremedia.iso.IsoFile.parse(IsoFile.java:85)
at com.coremedia.iso.IsoFile.<init>(IsoFile.java:54)
at org.media.processor.LibraryImpl.printFileDetails(LibraryImpl.java:529)

最佳答案

ChannelBuffer只是对byte[]的封装。

chanBuff.getBytes(0,outputStream,chanBuff.readBytes())将调用outputStream.write(byte [],begin,length)。

所以在写入内容之前,应该先在ChannelBuffer中分配一个正确长度的字节。

关于java - HTTP响应附件下载完成通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17179750/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com