榆树 - 通过get请求检索字符串

时间:2015-12-10 13:02:12

标签: http elm

我正在尝试发出获取请求以检索字符串

当我使用

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请求完成,但链接的任务不会被执行。

我的问题是:上述两种方法有什么区别?我第二个做错了吗?如何调试?

1 个答案:

答案 0 :(得分:4)

getStringString的形式返回get请求的响应。 get使用JSON解码器并在get请求的响应上运行它。因此,如果您提供Json.Decode.string,它将期望响应中包含Json编码的字符串。所以它期望响应中有额外的双引号。

如果您的http请求失败,最好的调试方法是查看您获得的错误类型。在这种情况下,您可能会获得UnexpectedPayload,因为请求成功,但解码器失败。