Java将作为Rest API响应返回的pdf转换为文本

问题描述 投票:1回答:1

我必须从我的返回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();

但是这段代码不断回复我的空响应,我不确定是什么问题,或者是否还有其他方法可以做到这一点。请帮忙。

java rest java-8 inputstream apache-tika
1个回答
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();
    }
}

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.