httpclient 파일 다운로드
08.02.2020 admin

URL에서 로컬 파일로 읽은 바이트를 작성하기 위해 FileOut­putStream 클래스의 write() 메서드를 사용합니다. 예를 들어 2KB 파일을 다운로드하려면 범위 0 — 1024 및 1024 ~ 2048을 사용할 수 있습니다. HTTP Post 메서드를 사용하여 서버 측 리소스로 콘텐츠를 보내야 합니다. 파일 데이터와 키/값 쌍의 컬렉션을 하나의 Form­Data 개체에 결합해야 하기 때문에 까다로운 부분은 HTTP 요청 본문 콘텐츠를 생성하는 것입니다. 다음 코드 조각에는 예제 솔루션이 표시됩니다. 위의 코드에서 22~47줄은 파일 처리를 처리하고 48~65줄은 양식 처리를 처리합니다. Mul­ti­part­Re­a­derHTTP 요청 본문에서 섹션을 읽으면 요청 콘텐츠가 구문 분석되어 실제 디스크(파일) 및 메모리(양식 데이터)에 저장됩니다. 여기서 일어나는 일은 URL­Con­nec­tion을 특정 범위의 파일 바이트를 요청하도록 구성했다는 것입니다. 범위는 마지막으로 다운로드한 바이트에서 시작하여 원격 파일 크기에 해당하는 바이트로 끝납니다. 각 Htt­pRe­sponseBo­dy­Part를 메모리에 누적하는 대신 Fil­eChan­nel을 사용하여 로컬 파일에 바이트를 직접 작성합니다. get­Bo­dy­Byte­Buf­fer() 메서드를 사용하여 Byte­Buf­fer를 통해 본문 부품 콘텐츠에 액세스합니다. 미러를 사용하여 릴리스 빌드를 다운로드하는 것이 좋지만 기본 배포 디렉터리에서 다운로드한 서명을 사용하여 다운로드한 파일의 무결성을 확인해야 합니다.

최근 릴리스(48시간)는 아직 미러에서 제공되지 않을 수 있습니다. 파일을 다운로드하기 위해 HTTP Get 요청을 한 다음 응답 내용을 실제 파일로 복사할 수 있는 메모리 스트림으로 읽습니다. 다음 코드 조각에는 예제가 표시됩니다. 줄 14와 15는 파일 콘텐츠에서 ByteAr­ray­Con­tent 개체를 만들고 Con­tent­Type 헤더를 „다중 파트/양식 데이터„로 설정합니다. 참고: 파일이 양식에 포함된 경우 enc­type 특성은 항상 „다중 파트/양식 데이터„여야 하며, 이 특성은 양식이 다중 부분 MIME 메시지로 전송되도록 지정합니다. Con­tent­Ty­pe이 설정되지 않은 경우 기본적으로 응용 프로그램/json이 됩니다. IO 작업에 매우 많이 사용되는 또 다른 라이브러리는 아파치 커먼스 IO입니다. Java­do­c에서 일반 파일 조작 작업에 사용되는 FileU­tils라는 유틸리티 클래스가 있음을 알 수 있습니다.

게시물은 이미 조금 오래되었지만 http 스트림에서 파일 스트림으로의 ‚CopyToAsync‚는 매우 우아합니다! URL에서 파일을 읽으려면 URL 스트림에서 새 Rea­da­ble­Byte­Chan­nel을 만듭니다: 16줄은 양식 개체에 파일 콘텐츠를 추가하고 키를 „파일„로 설정합니다. 여러 파일이 양식에 포함된 경우 키가 다를 수 있습니다. 응용 프로그램이 다른 시스템과 통신해야 하는 경우 응용 프로그램이 백 엔드에서 Htt­p­Cli­ent를 사용하여 다른 시스템으로 데이터를 보내고 데이터를 수신하는 것이 일반적입니다. Micro­soft 문서의 이 문서를 기반으로 HTTP 요청을 보내고 HTTP 응답을 받는 것은 간단합니다.

Print