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

springframework.web.client Sama ada RestClient mengendalikan @requestParam

WBOY
Lepaskan: 2024-02-10 17:15:07
ke hadapan
955 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!

sumber:stackoverflow.com
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