ClientResponse
객체를 사용하는 것과 관련이 있습니다. 이 개체는 응답 상태 코드 및 엔티티 (응답 본문)에 대한 액세스를 제공합니다. 특정 접근법은 응답 본문의 내용 유형에 따라 다릅니다. JSON 응답의 경우 일반적으로 Jackson 또는 GSON과 같은 JSON 처리 라이브러리를 사용해야합니다. invoke()
Jackson을 사용하는 예는 다음과 같습니다. WebTarget
를 실제 API 엔드 포인트로, 를 JSON 응답의 구조에 매핑하는 클래스로 대체하십시오. 또한 프로젝트에 Jackson 의존성을 포함시켜야합니다.
JSON 응답 본문을 효율적으로 구문 분석하는 것은 JSON 응답 본문을 효율적으로 구문 분석하는 데 주로 올바른 JSON 프로세싱 라이브러리를 선택하고 기능을 활용하는 것과 관련이 있습니다. Jackson과 Gson은 속도와 사용 편의성으로 인해 인기있는 선택입니다. 그들은 JSON을 Java 객체로 직접 불안정하게하는 방법을 제공하여 오류가 발생하기 쉬우 며 덜 효율적인 수동 구문 분석을 피합니다.import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import com.fasterxml.jackson.databind.ObjectMapper; //Jackson library public class ReadPostResponseBody { public static void main(String[] args) { Client client = ClientBuilder.newClient(); WebTarget target = client.target("http://your-api-endpoint.com/your-resource"); // Create a sample request entity (replace with your actual data) String requestBody = "{\"key1\":\"value1\", \"key2\":\"value2\"}"; Response response = target.request(MediaType.APPLICATION_JSON).post(Entity.json(requestBody)); if (response.getStatus() == 200) { //Check for successful response try { ObjectMapper objectMapper = new ObjectMapper(); YourResponseObject responseObject = objectMapper.readValue(response.readEntity(String.class), YourResponseObject.class); //Process responseObject System.out.println("Response: " + responseObject); } catch (Exception e) { e.printStackTrace(); } } else { System.err.println("Request failed with status code: " + response.getStatus()); } response.close(); client.close(); } //Define your response object structure public static class YourResponseObject { // Your class fields here } }
와 같은 주석을 사용하여 JSON 키를 Java 필드에 정확하게 매핑하는 것을 고려하십시오. "http://your-api-endpoint.com/your-resource"
다른 HTTP 상태 코드를 처리하기위한 모범 사례 YourResponseObject
2xx (성공) :
는 응답 본문을 정상적으로 처리합니다. 4xx (클라이언트 오류) : 이러한 오류는 종종 요청에 문제가 있음을 나타냅니다 (예 : 입력 불량). 오류를 기록하고 잠재적으로 사용자 친화적 인 피드백을 제공합니다. objectMapper.readValue()이 서버 측의 문제를 나타냅니다. 지연 후에 오류를 기록하고 관리자를 경고하거나 경고하는 것을 고려하십시오. @JsonProperty
첫 번째 섹션의 예제는 200 OK 상태 코드에 대한 기본 확인을 보여줍니다. API 사양에 따라 더 넓은 범위의 상태 코드를 처리하도록이를 확장해야합니다. 다른 상태 코드를 우아하게 관리하기 위해
네트워크 오류 및 기타 예외는 불가피합니다. 다음과 같은 잠재적 인 문제를 처리하려면 코드를
블록으로 랩핑하십시오.IOException
위 내용은 게시물 요청에서 JAX-RS 클라이언트에서 응답 본문 읽기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!