2014-03-24 110 views
30

我想在Haskell中使用warp网络服务器创建一个网站。由于我是一名Haskell初学者,像this one这样的例子对我来说很复杂。最小warp网络服务器示例

任何人都可以告诉我一个简单的,如何使用最小的例子warp

注意:这个问题故意显示没有研究工作,因为它被回答Q & A-样式。

回答

44

这是最小的Hello World使用warp 3.0+的应用程序。运行它,然后导航到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-06-20:经3.0包括了一些API的变化 - 体现它们放回代码。

+6

请解释downvote,只是downvoting这不会使任何更好的文章! –

+2

这个例子似乎不适用于当前版本的Warp(3.0.0.3)? 无法匹配类型'Network.Wai.Internal.Response' 'IO Network.Wai.Internal.ResponseReceived' – Fil

+1

@Fil感谢您的报告,我会看看它! –