用Python调用HaskellWeb服务
发布时间:2023-12-09 10:48:03
要在Python中调用Haskell Web服务,我们可以使用requests库来发送HTTP请求并接收Web服务的响应。以下是一个调用Haskell Web服务的例子:
首先,确保你已经安装了requests库。你可以使用以下命令安装:
pip install requests
现在,让我们假设Haskell Web服务已经在本地启动并监听在http://localhost:3000端口。
下面是一个简单的Haskell Web服务的例子,它会返回传入的字符串的反转版本:
{-# LANGUAGE OverloadedStrings #-}
import Web.Scotty
reverseString :: String -> String
reverseString = reverse
main :: IO ()
main = scotty 3000 $ do
post "/reverse" $ do
str <- param "str"
let reversedStr = reverseString str
text (pack reversedStr)
以上代码使用了Scotty库来创建一个简单的Web服务。它会监听/reverse路由的POST请求,并将传入的字符串进行反转后作为响应返回。
现在,让我们使用Python来调用这个Haskell Web服务。我们需要使用requests库来发送POST请求,并将需要反转的字符串作为参数传递给Web服务。以下是一个Python示例代码:
import requests
def reverse_string(input_str):
url = 'http://localhost:3000/reverse'
payload = {'str': input_str}
response = requests.post(url, data=payload)
if response.status_code == 200:
return response.text
else:
return None
input_str = 'hello world'
reversed_str = reverse_string(input_str)
if reversed_str:
print('Reversed string:', reversed_str)
else:
print('Failed to reverse string')
以上代码定义了一个reverse_string函数,它发送带有字符串参数的POST请求到Haskell Web服务,并返回反转后的字符串。然后,我们调用该函数并打印结果。
请确保在运行Python脚本之前,已经成功启动了Haskell Web服务。
这就是使用Python调用Haskell Web服务的基本过程。你可以根据自己的需要,在Haskell Web服务中定义更多的功能,并在Python中调用它们。
