我必须从我的返回pdf文件的java代码中作为rest api API(/ getconstomerList)使用。我需要阅读PDF文件并将其转换为String。
我尝试用tika这样做
BodyContentHandler handler = new BodyContentHandler(10 * 1024 * 1024);
Metadata metadata = new Metadata();
URL url = new URL("http://" + hostName + uri);
BufferedInputStream inputstream = new BufferedInputStream(url.openStream());
Parser parser = new AutoDetectParser();
parser.parse(inputstream, handler, metadata, pcontext);
return handler.toString();
但是这段代码不断回复我的空响应,我不确定是什么问题,或者是否还有其他方法可以做到这一点。请帮忙。
对于HTTP调用,我建议使用Retrofit库。您可以通过提供包含API方法的interface
轻松设置/配置。其中一种方法将返回Call<ResponseBody>
从中获取ResponseBody
并使用它你可以得到InputStream
。使用它,您可以将流转换为文件并执行您想要执行的操作。下面是一个示例代码。
String downloadFileAndReadAsString(ResponseBody responseBody, Path filePath) {
try (InputStream inputStream = responseBody.byteStream()) {
Path downloadedFilePath = Files.copy(inputStream, filePath,
StandardCopyOption.REPLACE_EXISTING);
return new String(Files.readAllBytes(downloadedFilePath));
} catch (IOException ex) {
ex.printStackTrace();
}
}
希望能帮助到你。