我正在学习Spring,我试图使用一个外部API (Instana),但是我面临这个错误,我无法提取应用程序度量标准。我可以使用curl获得结果,但在Spring中无法转换它
@PostMapping("/metrics")
public PageLoad getPageData(){
RestTemplate restTemplate = new RestTemplate();
String customerAPIUrl = "https://apm-companyName.instana.io/api/application-monitoring/metrics/applications";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setBearerAuth("tokenByInstana");
HttpEntity<String> entity = new HttpEntity <> (headers);
ResponseEntity<PageLoad> response = restTemplate.exchange(customerAPIUrl, HttpMethod.GET, entity, PageLoad.class);
return new PageLoad();
}这里发生的错误是
org.springframework.web.client.HttpClientErrorException$MethodNotAllowed: 405 Method Not Allowed: "{"code":405,"message":"HTTP 405 Method Not Allowed"}"这是响应类。
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
@NoArgsConstructor
@Data
public class PageLoad {
Object time;
List<Object> items = new ArrayList<>();
Integer page;
Integer pageSize;
Integer totalHits;
}发布于 2022-04-09 13:28:37
我认为你有一些问题,对于问题中的直接错误,我认为你需要在这里做一个。因此,您需要@GetMapping("/metrics")而不是PostMapping。这是因为看起来您甚至没有POSTing任何数据到您的端点,所以PostMapping是多余的。
发生这个错误是因为它期望您运行:curl -X POST http://localhost:8080/metrics和我怀疑您只是在运行curl http://localhost:8080/metrics (这是一个默认的GET)。
https://stackoverflow.com/questions/71807332
复制相似问题