【发布时间】:2021-11-24 03:01:41
【问题描述】:
我想下载来自外部 url 的文件。但是我遇到了错误。有没有更好的方法来实现这一点?
这是我的代码:
public ResponseEntity downloadAsset() throws IOException {
final String username = "abd";
final String password = "rewf";
String url = "https://www.clickdimensions.com/links/TestPDFfile.pdf";
String plainCreds = username + ":" + password;
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);
CloseableHttpClient httpClient = HttpClientBuilder.create().build();
HttpGet request = new HttpGet(url);
request.setHeader("Authorization", "Basic " + base64Creds);
HttpResponse response = httpClient.execute(request);
if(response.getStatusLine().getStatusCode() == 200) {
System.out.println("response:: " + response.getEntity());
return ResponseEntity.ok()
.contentLength(response.getEntity().getContentLength())
.body(response.getEntity().getContent());
}
return ResponseEntity.ok().build();
}
我遇到以下错误:
There was an unexpected error (type=Internal Server Error, status=500).
No converter found for return value of type: class org.apache.http.conn.EofSensorInputStream
org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class org.apache.http.conn.EofSensorInputStream
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:230)
at org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue(HttpEntityMethodProcessor.java:226)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:82)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:124)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
【问题讨论】:
标签: java spring spring-boot rest servlets