我正在使用Apache HttpClient连接到服务器以下载.wav文件。我在我的程序中使用HTTP POST方法。
服务器正确响应以下标题和正文:
> HTTP/1.1 200 OK\r\n Content-Disposition: attachment;
> filename=saveme1.mp3\r\n Content-Length: 6264\r\n
> Content-Transfer-Encoding: binary\r\n Content-Type: audio/mp3\r\n
我现在如何从HTTP响应中提取saveme1.mp3文件?我使用以下代码:
ResponseHandler<String> responseHandler = new BasicResponseHandler();
byte[] data = httpclient.execute(httppost, responseHandler).getBytes();
但是,当我将数据写入文件时,我正在变垃圾。
FileOutputStream fileoutputstream = new FileOutputStream(outputFile);
for (int i = 0; i < data.length; i++)
fileoutputstream.write(data[i]);
答案 0 :(得分:1)
如果你想下载mp3,我认为最简单的方法是:
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
现在你有了实体,可以调用entity.getContent();这给你一个inputStream,现在你可以用你想要的每个方法保存这个流,你需要mime类型和文件名来保存你的文件。如果你有文件名和mime类型的问题,请告诉我添加一些示例代码。
答案 1 :(得分:0)
您正在获取首先需要解析的MIME附件。 BasicResponseHandler只返回响应字符串,但您需要包含.mp3二进制文件的附件正文。您需要执行以下步骤: