2017-09-05 1 views
0

JAVA에서 C# webapi를 사용하고 있습니다. API 메소드는 파일 바이트 배열을 반환합니다. 자바에서 바이트 배열 응답을 읽을 수 있지만 같은 파일로 변환하려고하면 전체 문자열을 파일에 씁니다. 다음은 DOCX file screenshotapi httpresponse bytearray를 파일로 변환하십시오.

이 피들러 응답 스크린 샷입니다 : 아래

HttpResponse response=... 
byte[] content = EntityUtils.toByteArray(response.getEntity()); 
File fileToWriteTo = new File("abc.docx"); 
FileUtils.writeByteArrayToFile(fileToWriteTo, content); 

가 생성 된 파일의 스크린 샷입니다 : 아래

내가 사용하고있는 코드입니다 Fiddler response screenshot

답변

0

콘텐츠 - 유형 : application/json

C# API에서 보낸이 콘텐츠/유형은 약간 의심 스럽습니다.

의 Content-Type :이 종점 바이트 배열을 반환하도록되어있는 경우

, 당신은 같은 것을 받아야한다

그래서 여기에서 일어나고있는 것은 응용 프로그램/octet-stream을 당신의 바이트 배열은 자바 프로그램에 의해 텍스트 파일로 기록 된 JSON 문자열 (바이트를 둘러싼 따옴표로 나타남)로 전송됩니다.

할 일은 C# 끝점을 올바른 콘텐츠 형식으로 보내도록 수정하는 것입니다.

액세스 할 수 없으면 JSON String을 구문 분석하고 바이트 배열의 바이트 문자열을 디코딩 한 다음 파일에 쓸 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 너는 나를 위해 일한다. –

관련 문제