Haskell:
使用基本认证发送 HTTP 请求
如何做:
import Network.HTTP.Simple
-- 设置请求URL和认证信息
let url = "http://example.com/data"
let auth = basicAuth "username" "password"
-- 创建请求并添加认证
let request = setRequestURL url $ setRequestBasicAuth auth defaultRequest
-- 发送请求并获取响应
response <- httpLBS request
-- 打印响应的状态码和正文
putStrLn $ "Status code: " ++ show (getResponseStatusCode response)
putStrLn $ "Body: " ++ show (getResponseBody response)
样例输出:
Status code: 200
Body: <response body>
深入了解
HTTP基本认证的方法由内置于HTTP框架的验证机制组成,历史悠久,可以追述至HTTP/1.0。尽管基本认证明文发送经过Base64编码的凭据,容易受到中间人攻击,但因其简单性,在内部或者低安全需求的系统中仍然广泛使用。除此之外,还有更安全的认证方式,如OAuth。
Haskell中发送HTTP请求,通常使用如Network.HTTP.Simple
这样的库来简化流程。这些库封装了底层网络协议,使开发者可以更容易地发送请求,并处理如编码、超时和错误之类的点。
参考链接
- Haskell
http-conduit
官方文档 - HTTP认证概述 MDN Web Docs
- Base64编码解码 Wiki