2015-12-10 33 views
2

檢索字符串我試圖做一個GET請求來檢索字符串榆樹 - 通過GET請求

當我使用

retrieve : Task.Task Http.Error String 
retrieve = getString "http://api.endpoint.com" 

一切工作正常。

在另一方面,如果我用

retrieve : Task.Task Http.Error String 
retrieve = get Json.Decode.string "http://api.endpoint.com" 

http請求得到執行,但鏈接的任務不會被執行。

我的問題是:上述兩種方法有什麼區別?我在做第二個錯誤的事嗎?如何調試它?

回答

4

getString將獲取請求的響應作爲String返回。 get採取JSON解碼器並通過獲取請求的響應運行。因此,如果您提供Json.Decode.string,則預計響應中會包含Json編碼的字符串。所以它期望在響應中增加雙引號。

如果您的http請求失敗,調試的最佳方式是查看您得到的錯誤類型。在這種情況下,您可能會得到UnexpectedPayload,因爲請求成功,但解碼器失敗。