Apache HttpClient를 사용하여 GET / POST 요청을 수행하고 있습니다.
URL과 함께 다시 다운로드하지 않고도 응답으로로드 / 검색된 이미지를 저장할 수 있는지 궁금합니다.
이 질문은 1 년 전에 요청되었지만 아무도 대답하지 않았습니다. HttpClient를 사용하여 캐시 된 이미지를 얻을 수 있습니까?
나는 시도했다 :
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet(url);
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
FileOutputStream fos = new FileOutputStream(new File("img.png"));
int inByte;
while ((inByte = is.read()) != -1) {
fos.write(inByte);
}
is.close();
fos.close();
하지만 분명히 텍스트 만 HttpClient
다운로드하는 것 같습니다. 특정 URL의 이미지를 다운로드 할 수 있습니까? 이것이 가능합니까?
웹 페이지는 페이지의 HTML 코드 일뿐입니다.
브라우저가 웹 페이지에 액세스하면 HTML 코드를 다운로드 한 다음 HTML을 파싱합니다 . 같은 물건이있는 경우 IMG
등 태그 (등 플래시, 애플릿 등) 임베디드 오브젝트, 프레임 및이 브라우저는 URL을 소요하고, 이미지를 다운로드하는 새로운 HTTP 연결을 생성합니다. 모든 이미지에 대해 그렇게합니다. 그런 다음 페이지의 다양한 부분을 모두 캐시에서 준비하고 페이지를 렌더링합니다.
물론 이것은 브라우저가 연결을 열어두고 캐시를 유지하여 이러한 것들을 최적화하는 경향이 있기 때문에 간단한 설명입니다. 다시 말해서 페이지에 이미지를 가져 오려면 :
HttpClient
응답은 제공 한 URL에 따라 HTML 페이지 또는 단일 이미지와 같은 하나의 객체 만 나타냄 을 이해하는 것이 중요 합니다. 전체 페이지와 모든 이미지를 다운로드하려면 HttpClient
각 개체에 대해을 사용해야합니다 . 자동으로 수행되지는 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다