2016-10-25 3 views
0

InputStream ~ createParcel() 메서드를 Java REST 클라이언트를 사용하여 전달하는 방법은 무엇입니까? POSTMAN을 사용하여 POST 요청에 어떻게 전화하나요?InputStream을 REST 서비스 POST 메서드에 전달하는 방법

@POST 
@Consumes(MediaType.APPLICATION_XML) 
@Produces(MediaType.TEXT_PLAIN) 
public int createParcel(InputStream is) { 
    int awbNo = 0; 
    try { 
     ParcelInfo parcelInfo = null; 
     parcelInfo = buildParcelInfo(is); 
     awbNo = index.incrementAndGet(); 
     parcelInfo.setAwbNo(awbNo); 
     parcelInfo.setStatus("new"); 
     parcelDataMap.put(awbNo, parcelInfo); 
    } catch(Exception ex) { 
     logger.error("Getting some exception for creating parcel : "+ex.getMessage(), ex); 
    } 
    return awbNo; 
} 

@GET 
@Produces(MediaType.APPLICATION_XML) 
public StreamingOutput getParcelInfo(@QueryParam("awbNo") int awbNo) { 
    ParcelInfo parcelInfo = null; 
    String xml = null; 
    parcelInfo = parcelDataMap.get(awbNo); 

    if (parcelInfo != null) { 
     xml = convert(parcelInfo); 
    } 
    return new ParcelInfoWriter(xml); 
} 

답변

0

당신이 구조화 된 데이터가 아니라 원시의 InputStream를 소모되지 않기 때문에, 먼저 @Consumes 주석을 제거; 따라서 리소스 방법은 다음과 같아야합니다.

@POST 
@Produces(MediaType.TEXT_PLAIN) 
public int createParcel(InputStream is) { 
    int awbNo = 0; 
    try { 
     ParcelInfo parcelInfo = null; 
     parcelInfo = buildParcelInfo(is); 
     // the rest of your code here 
    }catch(Exception ex) { 
     // catch specific exception instead of `Exception` 
    } 
    return awbNo; 
} 

이제는 우편 발송자를 통해 리소스를 호출하십시오. 귀하의 요청 내용 본문은 모든 내용이 될 수 있습니다 (본 예제에서는 XML이지만 원하는대로 보낼 수 있습니다). (가) :-)

을 그리기위한

enter image description here

Execume을 : 올바르게 요청을 설정하는 방법은 아래의 스크린 샷 봐

관련 문제