欢迎访问宙启技术站
智能推送

用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中调用它们。