在Elm教程Http部分中,有代码示例定义了Cmd运行时要处理的代码:
Http.get
{ url = "https://elm-lang.org/assets/public-opinion.txt"
, expect = Http.expectString GotText
}
Run Code Online (Sandbox Code Playgroud)
因此,我们希望服务器响应为文本,并将消息类型(GotText)传递给Http.expectString函数,以便稍后将结果附加到GotText。这是GotText定义(类型为Result):
type Msg
= GotText (Result Http.Error String)
Run Code Online (Sandbox Code Playgroud)
因此,如果在请求期间发生任何错误,加上预期的响应类型,则会在Http.Error附加到的内部捕获GotText该错误,否则会发生运行时错误(在ELm中不是这样)。我的问题是,如果服务器返回文本以外的其他内容(即二进制)怎么办?AFAIK不存在这样的Http错误bad response,那么该错误类型是否仍嵌入Http.ErrorELm中?
但是还有。来自Http.Error的elm / http文档:
BadBody意味着您返回的响应带有良好的状态代码,但是响应的主体是意外的。在这种情况下,String是一条调试消息,它说明JSON解码器出了什么问题或其他问题。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |