【问题标题】:Minimal Warp webserver example最小 Warp 网络服务器示例
【发布时间】:2014-05-02 10:51:47
【问题描述】:

我想在 Haskell 中使用 Warp 网络服务器创建一个网站。

由于我是 Haskell 初学者,像 this one 这样的例子对我来说太复杂了。

谁能给我看一个如何使用Warp的简单、最小的例子吗?

注意:这个问题故意显示没有研究工作,因为它是以问答方式回答的。

【问题讨论】:

    标签: haskell haskell-warp


    【解决方案1】:

    这是一个使用 Warp 3.0+ 的最小 Hello World 应用程序。运行它,然后导航到http://localhost:3000。此示例将显示Hello world

    为了使此示例最小化,根本不处理 URL 路径(为任何路径传递相同的内容)。有关包含 URL 路径处理的稍长示例,请参阅 the Haskell Wiki

    {-# LANGUAGE OverloadedStrings #-}
    
    import Network.Wai (responseLBS, Application)
    import Network.Wai.Handler.Warp (run)
    import Network.HTTP.Types (status200)
    import Network.HTTP.Types.Header (hContentType)
    
    main = do
        let port = 3000
        putStrLn $ "Listening on port " ++ show port
        run port app
    
    app :: Application
    app req f =
        f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!"
    

    2014 年 6 月 20 日更新:Warp 3.0 包含一些 API 更改——将它们反映在代码中。

    【讨论】:

    • 请解释投反对票,只是投反对票不会让帖子变得更好!
    • 请注意,包含OverloadedString 的第一行很重要,因为它允许将普通字符串转换为ByteStrings。否则,需要修改此示例以通过Blaze.ByteString.Builder.Char8 和/或Data.ByteString.Char8"text/plain""Hello world!" 等字符串显式转换为ByteStrings。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多