Rumah > Java > javaTutorial > Bagaimana untuk Muat Naik Fail dengan Data JSON Tambahan dalam Perkhidmatan Web RESTful Jersey?

Bagaimana untuk Muat Naik Fail dengan Data JSON Tambahan dalam Perkhidmatan Web RESTful Jersey?

DDD
Lepaskan: 2024-12-03 07:34:09
asal
434 orang telah melayarinya

How to Upload Files with Additional JSON Data in a Jersey RESTful Web Service?

Muat Naik Fail dengan Data Tambahan dalam Perkhidmatan Web RESTful Jersey

Untuk mencapai muat naik fail bersama-sama dengan data objek lain dalam satu panggilan REST, ubah suai kaedah muat naikFileWithData seperti berikut:

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") String employeeJson) {

    // Deserialize the employee data from JSON
    JacksonJsonProvider provider = new JacksonJsonProvider();
    Employee emp = provider.readFrom(Employee.class, employeeJson);

    // ...business logic...
}
Salin selepas log masuk

Kunci Mata:

  • Daripada menggunakan objek Pekerja, terima data pekerja sebagai rentetan JSON mentah (String employeeJson).
  • Gunakan JacksonJsonProvider Jackson untuk menyahsiri rentetan JSON ke dalam objek Pekerja.
  • Pastikan pembekal didaftarkan dalam JAX-RS anda aplikasi.

Penyelesaian Masalah Posmen:

Posmen tidak boleh menetapkan Jenis Kandungan secara automatik untuk bahagian badan individu. Untuk membetulkannya:

  1. Buka badan permintaan dalam editor Posmen.
  2. Klik kanan pada bahagian "emp" dan pilih "Edit" atau "Tambah Pengepala".
  3. Tetapkan Jenis Kandungan kepada aplikasi/json.

Alternatif Penyelesaian:

Sebagai alternatif, anda boleh menetapkan Jenis Kandungan secara eksplisit dalam kaedah REST anda:

@POST
@Path("/upload2")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFileAndJSON(
        @FormDataParam("emp") FormDataBodyPart jsonPart,
        @FormDataParam("file") FormDataBodyPart bodyPart) {

    jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE);
    Employee emp = jsonPart.getValueAs(Employee.class);

    // ...business logic...
}
Salin selepas log masuk

Nota:

Jika anda menggunakan Penyambung yang berbeza daripada HttpUrlConnection, anda mungkin menghadapi masalah seperti yang dibincangkan dalam ulasan yang berkaitan.

Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Fail dengan Data JSON Tambahan dalam Perkhidmatan Web RESTful Jersey?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan