Elm:
发出 HTTP 请求

How to: 如何实现:

import Http
import Json.Decode exposing (string)

type Msg = GotText String | RequestFailed Http.Error

getText : Cmd Msg
getText =
    Http.get
        { url = "https://api.example.com/data"
        , expect = Http.expectString GotText
        }

update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        GotText text ->
            ({ model | content = text }, Cmd.none)

        RequestFailed _ ->
            (model, Cmd.none)

当你执行getText,它会从提供的URL获取文本。GotText包含了响应,而RequestFailed包含了可能出现的错误。

Deep Dive 深入了解:

发送HTTP请求是web开发的基石。Elm使用Http模块简化这一过程。Elm在0.18至今版本中,用TaskCmd的转变,进一步简化HTTP请求处理。

其他语言如JavaScript有fetchXMLHttpRequest。Elm中,使用Http.expectString处理纯文本响应;对于JSON,使用Http.expectJson

Elm确保所有的HTTP请求都得到处理,因为每个请求结果都匹配一个Msg类型。这保证了代码的可靠性,减少了处理异步操作时可能出现的困难。

See Also 参考链接: