我在一个Java项目中有一个带有以下URL的REST API: http://localhost:9094/start
@RequestMapping("/start")
public void start() throws IOException {
System.out.println("started");
}
我正试图从另一个Java项目中获取此URL
private boolean start(){
try{
httpClient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://localhost:9094/start");
System.out.println("executing request " + httpget.getRequestLine());
CloseableHttpResponse response = httpClient.execute(httpget);
httpClient.close();
return response.getStatusLine().getStatusCode() == HttpStatus.SC_OK;
}
catch(Exception ex){
logger.error("Error: " + ex.getMessage());
return false;
}
}
public void testing(){
if(start()){
System.out.println("Done");
}
}
出于某种原因,我似乎无法打印或启动“完成”。我不知道为什么。
解决: 愚蠢的错误,只是忘了添加授权标题。
答案 0 :(得分:1)
我肯定会从春天开始使用RestTemplate。确保路径正确,并且您的Controller也没有映射。
RestTemplate restTemplate = new RestTemplate();
public void callHello() {
restTemplate.getForObject("http://localhost:9094/start",null);
}
您也可以指定其余api的确切RequestMethod。
@RequestMapping(value = "start",method = RequestMethod.GET)
public void call() {
System.out.println("Hello");
}