我正在尝试向 Api Rest 发出获取请求,但我总是收到 404,不过,如果尝试在浏览器或 postMan 中复制 queryUrl,它会完美运行。
restTemplate.getForObject(queryUrl, entity ,Integer.class);
我也试过这个:
HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); HttpEntity entity = new HttpEntity(httpHeaders); log.debug("request headers: " + entity.getHeaders()); ResponseEntity response = restTemplate.exchange(queryUrl, HttpMethod.GET, entity, String.class);
但是什么都没有改变。 谁能帮帮我?
最佳答案
我花了一些时间才弄明白,所以我会在这里留下一张小纸条,希望有一天它能帮助到别人。 使用 ResTemplate.getForEntity(URL, Type) 发出获取请求时,我一直收到 404。该 URL 在 Chrome、Postman 中有效,但在我的代码中无效。 结果是因为我有一个 unsafe character在我的 URL 中,准确地说是一个 %,因为我的 URL 有空格,所以 URL 有 %20 而不是空格。 Postman 和 Chrome 可以处理这个,但不是我的代码。一旦我用实际空间替换了不安全字符,一切都很好。
希望它也适合你。
关于java - Spring RestTemplate getForObject 获取 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45570798/