Rumah > Java > springframework.web.client Sama ada RestClient mengendalikan @requestParam

springframework.web.client Sama ada RestClient mengendalikan @requestParam

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-10 17:15:07
ke hadapan
1001 orang telah melayarinya

Pisang Editor PHP akan menjawab soalan tentang Rangka Kerja Spring: Adakah RestClient mengendalikan @RequestParam? Dalam Rangka Kerja Spring, apabila menggunakan RestTemplate untuk membuat permintaan HTTP, anotasi @RequestParam digunakan untuk mendapatkan parameter daripada URL permintaan. Jadi bolehkah RestClient mengendalikan anotasi @RequestParam dengan betul? Seterusnya, kami akan meneroka isu ini secara terperinci untuk membantu anda memahami dan menggunakan RestClient dalam Rangka Kerja Spring dengan lebih baik.

Kandungan soalan

Saya mencuba ini:

@getmapping("/db/video/getall")
public responseentity<list<videodto>> getallvideo(@requestparam string owneremail) {        
        return ....;
    }
Salin selepas log masuk
import org.springframework.web.client.restclient;

restclient restclient = restclient.create("http://localhost:8095");

list<videodto> result = restclient.get()
    .uri("/db/video/getall")
    .accept(mediatype.application_json)
    .retrieve()
    .body(new parameterizedtypereference<list<videodto>>() {});
Salin selepas log masuk
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>6.1.2</version>
  </dependency>
Salin selepas log masuk

Tetapi saya tidak menemui contoh kod yang menunjukkan cara pelanggan lain boleh menghantar e-mel pemilik sebagai @requestparam.

Saya menjumpai contoh kod @pathvariable.

Jadi, adakah restclient mengendalikan @requestparam?

Penyelesaian

Untuk mendapatkan permintaan, anda boleh menambah parameter pertanyaan dalam url. Spring's uricomponentsbuilder memudahkan operasi uri.

restclient.get()
    .uri(uricomponentsbuilder.frompath("/db/video/getall")
            .queryparam("owneremail", "email").touristring())
    // ...
Salin selepas log masuk

Untuk permintaan pos, badan boleh set ke multivaluemap. Jenis kandungan boleh disimpulkan daripada kandungannya.

var parts = new LinkedMultiValueMap<String, Object>();
parts.add("ownerEmail", "emailValue");
restClient.post().uri("/db/video/getall").body(parts).retrieve().body(...);
Salin selepas log masuk

Atas ialah kandungan terperinci springframework.web.client Sama ada RestClient mengendalikan @requestParam. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan