2

저는 Apache HttpClient를 사용하여 json이 포함 된 multipart/form-data 응답을 반환하는 웹 서비스를 사용하고 있습니다.멀티 파트 HTTP 응답에서 여러 JSON 문자열 추출

json 문자열을 읽을 수 있도록 각 JSON 문자열을 개별적으로 추출하는 데 어려움을 겪고 있습니다.

나는 Stackoverflow에서 유사한 게시물을 읽었으며 일부는 Apache commons fileupload를 사용하여 제안했지만 일부는 경계 문자열, 내용 등 다른 텍스트가 포함 된 전체 응답에서 JSON 문자열을 분리 할 수 ​​있는지 잘 모르겠습니다. 유형 등

응답은 다음과 같습니다.

--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetMailboxes 
Status-Code: 200 
X-Server-Response-Time: 4ms 
X-Server-Chain: domain.com 
Content-RequestDuration: 5 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetFolders 
Status-Code: 200 
X-Server-Response-Time: 8ms 
X-Server-Chain: domain.com 
Content-RequestDuration: 10 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetAlerts 
Status-Code: 200 
X-Server-Response-Time: 10ms 
X-Server-Chain: domain.com 
Content-RequestDuration: 12 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetAccounts 
Status-Code: 200 
X-Server-Response-Time: 11ms 
X-Server-Chain: domain.com 
Content-RequestDuration: 12 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetAllSavedSearches 
Status-Code: 200 
X-Server-Response-Time: 10ms 
X-Server-Chain: domain.com 
Content-RequestDuration: 12 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetAthenaSegment 
Status-Code: 200 
X-Server-Response-Time: 14ms 
Content-RequestDuration: 21 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: ListFolderThreads 
Status-Code: 200 
X-Server-Response-Time: 110ms 
Content-RequestDuration: 116 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-Type: application/json 
Content-RequestId: GetUserInfo 
Status-Code: 200 
X-Server-Response-Time: 197ms 
Content-RequestDuration: 204 

{JSON} 
--Boundary_16003419_2104021487_1483424496169 
Content-RequestId: Status 
Content-Type: application/json 

{JSON} 
--Boundary_16003419_2104021487_1483424496169-- 

어떤 방식 으로든이 작업을 안정적으로 수행 할 수 있습니까?

+0

귀하의 요청 사항은 어떻게됩니까? 'application/json'을 요청하고 있습니까? 이것이 응답의 완전한 시작입니까? 'Content-Type'은 경계 태그를 포함해야합니다. httpclient로 응답 데이터를 어떻게 읽습니까? – PeterMmm

+0

@PeterMmm "application/json; charset = utf-8"을 요청합니다. 질문을 편집하고 전체 응답을 게시했습니다. JSON 내용이 100 % 인 것처럼 보입니다. {JSON} – Arya

+0

응답이'--Boundary_16003419 ... '로 시작됩니까? 이 서버 란 무엇입니까? 당신이 그것을 제어합니까? – PeterMmm

답변

2

하나의 옵션은 Apache Mime4j입니다. 응용 프로그램에서 메모리에 완전한 DOM 트리를 작성하지 않고 응답 내용을 처리하게하려면 here과 같이 MimeTokenStream 또는 MimeStreamParser을 사용하는 것이 좋습니다.