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

springframework.web.client Sama ada RestClient mengendalikan @requestParam

WBOY
WBOYke hadapan
2024-02-10 17:15:07893semak imbas

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 ....;
    }
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>>() {});
<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>

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())
    // ...

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(...);

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:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam