In diesem Abschnitt wird beschrieben, wie die Antwortkörper aus einer Postanforderung innerhalb eines JAX-RS-Clients lesen. Die Kernmethode umfasst die Verwendung des von der ClientResponse
-Methode des invoke()
zurückgegebenen WebTarget
-Objekts. Dieses Objekt bietet Zugriff auf den Reaktionsstatuscode und den Antwortkörper (die Antwortkörper). Der spezifische Ansatz hängt vom Inhaltstyp des Reaktionskörpers ab. Für JSON -Antworten, die häufig sind, müssen Sie eine JSON -Verarbeitungsbibliothek wie Jackson oder GSON verwenden. Sie müssen auch die Jackson -Abhängigkeit in Ihr Projekt aufnehmen. Jackson und GSON sind aufgrund ihrer Geschwindigkeit und Benutzerfreundlichkeit eine beliebte Wahl. Sie bieten Methoden zur direkten Deserialisierung von JSON in Java -Objekte und vermeiden eine manuelle Analyse, die anfällig für Fehler und weniger effizient ist. Stellen Sie sicher, dass Ihre Java -Klasse die Struktur der JSON -Reaktion für die nahtlose Deserialisierung genau widerspiegelt. Erwägen Sie, Annotationen wie
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 } }
2xx (Erfolg): "http://your-api-endpoint.com/your-resource"
Verarbeiten Sie den Antwortkörper als normal. Protokollieren Sie den Fehler und geben Sie möglicherweise benutzerfreundliches Feedback. Protokollieren Sie den Fehler und erwägen Sie, die Anforderung nach einer Verzögerung oder alarmierende Administratoren wiederzuerlegen. Sie sollten dies erweitern, um einen größeren Bereich von Statuscodes gemäß der Spezifikation Ihrer API zu verarbeiten. Verwenden Sie eine YourResponseObject
-Antage oder eine Reihe von
IOException
: Netzwerkprobleme, Verbindungszeitüberschreitungen. Die Fehlerbehandlung stellt sicher, dass Ihre Anwendung aufgrund unerwarteter Fehler nicht abstürzt, und ermöglicht es Ihnen, verschiedene Ausfallszenarien anmutig zu behandeln. Denken Sie daran, dem Benutzer informative Fehlermeldungen bereitzustellen oder detaillierte Informationen zum Debuggen zu protokollieren. Das obige ist der detaillierte Inhalt vonLesen Sie die Antwortkörper im JAX-RS-Client aus einer Postanfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!