emptygif
ಭಾಷೆ: ಕನ್ನಡ

ಎಲ್ಲಾ ಭಾಷೆಗಳು ಮತ್ತು ಫ್ರೇಮ್‌ವರ್ಕ್‌ಗಳು

WAI + Warp Haskell

/pixel.gif ಗೆ ಬರುವ ವಿನಂತಿಗಳಿಗೆ ಖಾಲಿ GIF ನೊಂದಿಗೆ ಉತ್ತರಿಸುವ, WAI + Warp ಗಾಗಿ ಒಂದು Haskell ಸ್ನಿಪೆಟ್; GIF ಅನ್ನು ಆರಂಭದಲ್ಲಿ ಒಮ್ಮೆ ಮಾತ್ರ ಡಿಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.

WAI + Warp Haskell

ಇನ್‌ಸ್ಟಾಲ್
build-depends: base, bytestring, base64-bytestring, http-types, wai, warp; ghc-options: -threaded
ಫೈಲ್
Main.hs
ರನ್
cabal run
{-# LANGUAGE OverloadedStrings #-}

import qualified Data.ByteString.Base64 as Base64
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Lazy as BL
import Network.HTTP.Types (methodGet, status200, status404)
import Network.Wai
import Network.Wai.Handler.Warp (run)

gif :: BL.ByteString
gif = BL.fromStrict (Base64.decodeLenient "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==")

app :: Application
app req respond
  | requestMethod req == methodGet && rawPathInfo req == "/pixel.gif" =
      respond $ responseLBS status200
        [ ("Content-Type", "image/gif"),
          ("Content-Length", BC.pack (show (BL.length gif))),
          ("Cache-Control", "no-store")
        ]
        gif
  | otherwise = respond $ responseLBS status404 [] "Not Found"

main :: IO ()
main = run 8080 app

ನಾವು ಈ ಸ್ನಿಪೆಟ್ ಅನ್ನು ರನ್ ಮಾಡಿ, ಅದು ಹಿಂತಿರುಗಿಸಿದ ಬೈಟ್‌ಗಳನ್ನು ಹೋಲಿಸಿದ್ದೇವೆ.

ಪರಿಶೀಲಿಸಿ

curl -sI http://localhost:8080/pixel.gif

ಅಧಿಕೃತ ಸೈಟ್: WAI + Warp

Haskell ನಲ್ಲಿ ಇನ್ನಷ್ಟು