在Haskell中将HTTPS请求的response body写入文件可以通过以下步骤实现:
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString as BS
import System.IO
manager <- newTlsManager
request <- parseRequest "https://example.com"
response <- httpLbs request manager
withBinaryFile "output.txt" WriteMode $ \handle -> do
LBS.hPut handle (responseBody response)
完整的代码示例如下:
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString as BS
import System.IO
main :: IO ()
main = do
manager <- newTlsManager
request <- parseRequest "https://example.com"
response <- httpLbs request manager
withBinaryFile "output.txt" WriteMode $ \handle -> do
LBS.hPut handle (responseBody response)
这段代码使用了http-client
和http-client-tls
库来发送HTTPS请求和处理响应。newTlsManager
函数创建了一个TLS管理器,parseRequest
函数解析了请求的URL,httpLbs
函数发送请求并返回响应。responseBody
函数获取响应的response body,然后使用withBinaryFile
函数将其写入名为"output.txt"的文件中。
这种方法适用于将HTTPS请求的response body以二进制形式写入文件。如果需要以文本形式写入文件,可以使用hPutStr
函数代替hPut
函数。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
请注意,以上答案仅供参考,具体实现可能需要根据实际情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云