Rumah > Java > javaTutorial > Baca Badan Respons dalam Pelanggan Jax-RS dari permintaan pos

Baca Badan Respons dalam Pelanggan Jax-RS dari permintaan pos

Robert Michael Kim
Lepaskan: 2025-03-07 17:19:15
asal
818 orang telah melayarinya

Membaca badan tindak balas dalam klien JAX-RS dari permintaan pos

Bahagian ini memperincikan bagaimana untuk membaca badan tindak balas dari permintaan pos dalam klien JAX-RS. Kaedah teras melibatkan penggunaan objek ClientResponse yang dikembalikan oleh kaedah invoke() WebTarget. Objek ini menyediakan akses kepada kod status tindak balas dan entiti (badan tindak balas). Pendekatan khusus bergantung kepada jenis kandungan badan tindak balas. Untuk respons JSON, yang biasa, anda perlu menggunakan perpustakaan pemprosesan JSON seperti Jackson atau Gson. Anda juga perlu memasukkan kebergantungan Jackson dalam projek anda. Jackson dan Gson adalah pilihan yang popular kerana kelajuan dan kemudahan penggunaannya. Mereka menyediakan kaedah untuk secara langsung deserializing JSON ke dalam objek Java, mengelakkan parsing manual yang terdedah kepada kesilapan dan kurang efisien. Pastikan kelas Java anda dengan tepat mencerminkan struktur tindak balas JSON untuk deserialization yang lancar. Pertimbangkan untuk menggunakan anotasi seperti

dalam kelas Java anda untuk memetakan kunci JSON ke Java Fields dengan tepat. Sentiasa periksa kod status HTTP yang dikembalikan oleh pelayan. Kod status 2xx menunjukkan kejayaan, sementara kod lain menandakan ralat. Kod anda harus mengendalikannya secara berbeza. Sebagai contoh:

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
    }
}
Salin selepas log masuk

2xx (kejayaan): "http://your-api-endpoint.com/your-resource" Proses badan tindak balas seperti biasa. Log ralat dan berpotensi memberikan maklum balas yang mesra pengguna. YourResponseObject

5xx (ralat pelayan):

Ini menunjukkan masalah di sisi pelayan. Log ralat dan pertimbangkan untuk mencuba semula permintaan selepas kelewatan, atau memberi amaran kepada pentadbir. Anda harus mengembangkan ini untuk mengendalikan pelbagai kod status yang lebih luas mengikut spesifikasi API anda. Gunakan pernyataan

atau satu siri

pernyataan untuk menguruskan kod status yang berbeza dengan anggun. Balut kod anda di blok

untuk menangani isu -isu yang berpotensi seperti: objectMapper.readValue()

  • IOException: Masalah rangkaian, tamat masa sambungan. Pengendalian ralat yang teguh memastikan bahawa aplikasi anda tidak terhempas kerana kesilapan yang tidak dijangka dan membolehkan anda untuk mengendalikan senario kegagalan yang berbeza. Ingatlah untuk memberikan mesej ralat yang bermaklumat kepada pengguna atau log maklumat terperinci untuk debug.

Atas ialah kandungan terperinci Baca Badan Respons dalam Pelanggan Jax-RS dari permintaan pos. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan