我必须从返回pdf文件的java代码中使用rest api API(/getconstomerList)。 我需要读取 PDF 文件并将其转换为字符串。
我尝试用 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图书馆。您可以通过提供 interface
轻松设置/配置包含 API 方法。其中一种方法将返回 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();
}
}
希望有帮助。
关于Java 将作为 Rest API 响应返回的 pdf 转换为文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54821214/