在发送REST请求之后,服务器将带回一个很长的字符串,如下所示:
RIFF\nt WAVEfmt ...(a lot of extra characters)
这应该是一个.wav文件。 从那里,我得到了一个使用Java的字节数组:
byte[] audio = restResponse.getResponseBody().getBytes();
哪个返回如下:
[82, 73, 70, 70, 10, 116, 32, 0, 87, 65, 86, 69, 102, 109, 116, 32, 18...
之后,我将该数组写入文件:
FileUtils.writeByteArrayToFile(new File("C:/Users/user/Desktop/temp.wav"), audio);
问题是,我尝试了2-3个音频播放器+将原始数据导入Audacity(尝试了不同的频率,频道...),但是我听到的都是静态的。
答案 0 :(得分:0)
正如VGR所说(非常感谢!),问题在于Rest客户端将字节转换为String的方式。
通过使用Apache的HttpClient,我能够正确获取响应字节。
byte []响应= method.getResponseBody();
FileUtils.writeByteArrayToFile(new File(“ C:/Users/user/Desktop/temp.wav”),响应);