urlString
값을 Chrome 브라우저에 간단하게 붙여 넣으면 CSV 파일을 잘 다운로드 할 수 있습니다.Jersey Client를 사용하여 파일을 다운로드하려고 할 때 HTTP 400 오류가 발생합니다.
하지만, 내가
WebResource webResource = client.resource(urlString);
WebResource.Builder wb=webResource.accept("application/json,application/pdf,text/plain,image/jpeg,application/xml,application/vnd.ms-excel");
ClientResponse response =wb.get(ClientResponse.class);
if (response.getStatus() != 200) {
throw new RuntimeException("HTTP error code : "
+ response.getStatus());
}
InputStream input = response.getEntity(InputStream.class);
byte[] byteArray = org.apache.commons.io.IOUtils.toByteArray(input);
FileOutputStream fos = new FileOutputStream(new File(fileToSave));
fos.write(byteArray);
fos.flush();
fos.close();
비록, 내 동의 PARAM 이상 text/plain
필요하지 않습니다 response.getStatus()
오류 400
로 얻을 코드 아래의 도움으로 같은 urlString
을 사용하여 파일을 다운로드하려고 할 때, 수락을 넓히기 위해서, 나는 더 많이 더했다.
문제를 찾으려고 많은 시간을 보내고 있습니다. 알려주세요. 많은 비슷한 질문이 있지만 아무도 내 문제를 해결하지 못합니다. 내가 저지 버전 다음
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.2</version>
당신은 당신의 URL 형식을 공유 할 수 있습니까? URL은 HTML로 인코딩 된 형식이어야합니다. –
URL 형식은'https : // something/something1? something = jsdfjs & sdjfl = 343'입니다. URL 인코딩 코드를 사용하여 이것을 인코딩하고 https % 3A로 변환하면 브라우저에서 사용하는 것과 정확히 일치합니다. 'URI가 절대적이지 않다 '라는 새로운 에러를받습니다. – Watt
그것의 문제는 아닙니다. 매개 변수에 특수 문자와 공백이 없어야합니다. –