J'essaie d'envoyer une requête POST à mon contrôleur, mais je ne peux pas passer de paramètre quel que soit le type à moins que je décide d'utiliser JSON. Mon but est de passer une chaîne et un fichier à mon contrôleur mais je continue à obtenir l'erreur Required request part 'xxx' is not present
.Téléchargement du fichier Spring - 'La partie Requête requise n'est pas présente'
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("file") MultipartFile uploadfile){
return ResponseEntity.ok().body(null);
}
}
Je ne peux pas avoir de fichier ici. De même si j'essaie:
@RestController
public class ConfigurationController {
@PostMapping(value = "/config")
public ResponseEntity<?> saveEnvironmentConfig(@RequestParam("name") String name){
return ResponseEntity.ok().body(null);
}
}
même chose que je ne peux pas obtenir le nom ici.
J'envoie la demande via Postman comme indiqué dans capture d'écran suivante:
La balise d'en-tête est seulement pour l'autorisation. Je n'ai aucun en-tête de type de contenu, j'ai essayé d'ajouter multipart/form-data
mais n'a pas aidé.
La seule façon de transmettre le paramètre String est d'ajouter à l'URL. Donc, après http://localhost:8080/SearchBox/admin/config?name=test
fonctionne mais ce n'est pas ce que je veux. Je veux des paramètres String et File dans la partie Body.
J'ai aussi testé via CURL:
curl -X POST -H "Authorization:Bearer myToken" -H "Content-Type:Multipart/form-data" http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -X POST -H "Authorization:Bearer myToken"http://localhost:8080/SearchBox/admin/config --data 'pwd=pwd'
curl -H "Authorization:Bearer myToken" -F [email protected]"/g123.conf" http://localhost:8080/SearchBox/admin/config
Note: J'ai vérifié des postes similaires déjà, mais n'a pas aidé This, This, This
'@RequestBody @RequestParam (" name ") Le nom de la chaîne ne fonctionnait pas. Lorsque j'essaie la variable de nom '@RequestBody String name', j'obtiens la valeur suivante: ' ------ WebKitFormBoundary6WJHhVqqZrh8qeAX Content-Disposition: form-data; name = "nom" Test ------ WebKitFormBoundary6WJHhVqqZrh8qeAX-- ' –