从java类中命中GET端点

时间:2016-09-24 03:52:20

标签: java spring rest

我在一个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");
   }
}

出于某种原因,我似乎无法打印或启动“完成”。我不知道为什么。

解决: 愚蠢的错误,只是忘了添加授权标题。

1 个答案:

答案 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");
    }