Pobieranie strony internetowej

Elm:
Pobieranie strony internetowej

How to: (Jak to zrobić:)

W Elm downloadowanie strony może być wykonane za pomocą modułu Http. Oto przykład prostego żądania GET:

import Http
import Json.Decode exposing (string)

type Msg
    = GotText (Result Http.Error String)

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

-- To jest wywołane, gdy odpowiedź przychodzi
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        GotText (Ok text) ->
            -- zrób coś z pobranym tekstem
            (model, Cmd.none)

        GotText (Err httpError) ->
            -- obsłuż błąd
            (model, Cmd.none)

Sample output może wyglądać tak:

-- W przypadku sukcesu:
GotText (Ok "Tutaj treść strony...")

-- W przypadku błędu:
GotText (Err Http.NetworkError)

Deep Dive (Dogłębna analiza)

W przeszłości Elm wykorzystywał elm-lang/http, ale obecnie używa się elm/http jako standardowego modułu do żądań HTTP. Alternatywą dla wbudowanych funkcji HTTP jest korzystanie z JavaScript’u poprzez porty.

Szczegóły implementacji to:

  • Użycie Http.expectString, by zinterpretować odpowiedź jako tekst.
  • Dekodowanie JSON za pomocą Json.Decode dla uzyskania bardziej złożonych typów danych.
  • Bezpieczne obsługiwanie błędów poprzez typ Result.

Programowanie w Elm skupia się na czystości funkcji i niezmienności, co sprzyja tworzeniu przewidywalnych aplikacji webowych.

See Also (Zobacz również)