Heim > Java > springframework.web.client Ob RestClient @requestParam verarbeitet

springframework.web.client Ob RestClient @requestParam verarbeitet

WBOY
Freigeben: 2024-02-10 17:15:07
nach vorne
913 Leute haben es durchsucht

PHP-Editor Banana beantwortet eine Frage zum Spring Framework: Verarbeitet RestClient @RequestParam? Wenn Sie in Spring Framework RestTemplate verwenden, um eine HTTP-Anfrage zu stellen, wird die Annotation @RequestParam verwendet, um Parameter aus der Anfrage-URL abzurufen. Kann RestClient also die @RequestParam-Annotation korrekt verarbeiten? Als Nächstes werden wir dieses Problem im Detail untersuchen, um Ihnen zu helfen, RestClient im Spring Framework besser zu verstehen und zu verwenden.

Frageninhalt

Ich habe Folgendes versucht:

@getmapping("/db/video/getall")
public responseentity<list<videodto>> getallvideo(@requestparam string owneremail) {        
        return ....;
    }
Nach dem Login kopieren
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>>() {});
Nach dem Login kopieren
<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>
Nach dem Login kopieren

Aber ich kann kein Codebeispiel finden, das zeigt, wie Restclient Owneremail als @requestparam übergeben kann.

Ich habe ein @pathvariable-Codebeispiel gefunden.

Verarbeitet restclient also @requestparam?

Problemumgehung

Für Get-Anfragen können Sie Abfrageparameter in der URL hinzufügen. Spring's uricomponentsbuilder vereinfacht die Bedienung von uri.

restclient.get()
    .uri(uricomponentsbuilder.frompath("/db/video/getall")
            .queryparam("owneremail", "email").touristring())
    // ...
Nach dem Login kopieren

Für Post-Anfragen kann der Text auf multivaluemap eingestellt werden. Der Inhaltstyp kann aus seinem Inhalt abgeleitet werden.

var parts = new LinkedMultiValueMap<String, Object>();
parts.add("ownerEmail", "emailValue");
restClient.post().uri("/db/video/getall").body(parts).retrieve().body(...);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonspringframework.web.client Ob RestClient @requestParam verarbeitet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage