2017-04-04 459 views
8

當我發出請求時,我得到一個XML。但我需要的是一個JSON。在該文檔中,爲了獲得JSON而聲明:使用Accept: application/json HTTP標頭。REST API - 使用「Accept:application/json」HTTP標頭

但是在上帝的名字裏面我找到了HTTP頭把Accept: application/json放在裏面。

我的猜測是它並不想成爲URL請求,它看起來像內部:

http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00 
+2

您如何發送請求? –

+0

這可以幫助您理解:http://stackoverflow.com/documentation/rest/1664/getting-started-with-rest/20145/rest-over-http – sp00m

回答

17

你猜對了,HTTP頭不是URL的一部分。

而當您在瀏覽器中輸入網址時,請求將以標準標題發出。無論如何,REST Apis並不意味着通過在瀏覽器的地址欄中輸入端點來使用它。

最常見的情況是您的服務器使用第三方REST Api。

這樣做你的服務器端代碼僞造適當的GET(/ PUT/POST/DELETE)請求指向給定的端點(URL)的設置(需要的,像你的情況時),一些最後(可能)發送一些數據(例如,通常發生在POST請求中)。

僞造請求,發送它並最終獲得響應的代碼取決於您的服務器端語言。

如果你想測試一個REST Api你可以使用curl工具從命令行。

curl發出請求並將輸出的響應輸出到標準輸出(除非另有說明)。

在你的情況下,測試請求將被髮出這樣的:

$curl -H "Accept: application/json" 'http://localhost:8080/otp/routers/default/plan?fromPlace=52.5895,13.2836&toPlace=52.5461,13.3588&date=2017/04/04&time=12:00:00' 

H--header指令設置頁眉和它的價值。