當我嘗試使用Spring的RestTemplate進行獲取請求時,它提供了400BAD請求。我可以用下面的標題成功地從JavaScript調用同一個網址:RestTemplate在獲取請求時給出400錯誤請求錯誤
但下面的代碼無法正常工作。可能是什麼原因?
public Entity getEntityByUri(String uri) {
String req = "http://live.dbpedia.org/sparql?query=DESCRIBE%20%3Chttp://dbpedia.org/resource/Concept_learning%3E&format=application%2Fjson-ld";
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.ALL));
HttpEntity<String> httpEntity = new HttpEntity<String>(headers);
new RestTemplate().exchange(req, HttpMethod.GET, httpEntity, Map.class);
Entity entity = new Entity();
return entity;
}
信息太少。你的代碼在哪裏接受這個休息請求。重新檢查你所放的網址。這是一個真正的網址? – pvpkiran
當然,您可以在瀏覽器上試用它。當通過HttpUrlConnection或IOUtils.read()直接調用時,它也會正確運行。這是接受請求的代碼。問題出在Springs RestTemplate的內部工作方式,我認爲它可能是標題第一,並且可以在問題中看到,但問題依然存在。沒有太多的信息可以提供,這段代碼也可以正常運行,並且從其他客戶端調用時,這個url響應正確。 – cuneytyvz
@cuneytyvz你是否知道Rest模板對URL進行了編碼,除非你使用URI的特定構造方法? – Coder