我必须从返回pdf文件的Java代码中使用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();
但是此代码始终向我返回空响应,我不确定是什么错误或是否有其他方法可以执行此操作。请帮忙。
答案 0 :(得分:0)
对于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();
}
}
希望有帮助。