Je souhaite communiquer avec un serveur dans la zone Java en utilisant la classe RestTemplate. Mais quand j'accède à mon serveur avec RestTemplate, il montre seulement 403 (interdit) erreur.Spring RestTemplate.postForEntry, renvoie l'erreur 403
mon code contrôleur:
@Controller(value="homeController")
public class HomeController {
@RequestMapping(value="/test")
public @ResponseBody Map<String, String> test(@RequestParam(value="message", required=false, defaultValue="hell world") String message){
Map<String, String> map = new HashMap<String,String>();
map.put("greeting", message);
return map;
}
code du côté client:
@Test
public void test2(){
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
map.add("message", "test");
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
ResponseEntity<String> response = restTemplate.postForEntity(url, request , String.class);
System.out.println(response.getBody());
}
Si le code fonctionne avec succès, la console devrait sortie mot "test".
EDIT: Lorsque j'accède au contrôleur, avec mon navigateur Web, il affiche correctement les données json.
Maintenant, Comment réparer le code pour communiquer au serveur sur la méthode POST? merci
403 indique qu'il vous manque l'authentification. Avez-vous la sécurité du printemps sur le chemin de la classe? Comment authentifiez-vous votre demande? – baao
Merci vraiment. Le problème était la sécurité du printemps. Je n'ai pas terminé la configuration de sécurité, et quand je supprime cette source de sécurité, le problème ci-dessus a été résolu! Je vous remercie. – PLAYMAKER
J'ai répondu à la question avec une classe de configuration rapide pour une authentification de base simple – baao