httpx-ntlm库
时间: 2025-08-18 17:43:45 AIGC 浏览: 22
### 关于 `httpx-ntlm` 的安装与使用
#### 安装方法
要安装 `httpx-ntlm` 库,可以通过 pip 工具完成。运行以下命令即可安装最新版本的库:
```bash
pip install httpx-ntlm
```
此命令会自动下载并安装该库及其依赖项。
---
#### 使用方法概述
`httpx-ntlm` 是一个扩展库,旨在为 `httpx` 提供 NTLM 身份验证的支持。NTLM(NT LAN Manager)是一种专有的身份验证协议,通常用于 Windows 网络环境中的客户端和服务端认证过程[^4]。
以下是 `httpx-ntlm` 的基本使用方式以及示例代码。
---
#### 示例代码:发送带有 NTLM 认证的请求
下面是一个完整的 Python 代码示例,展示如何通过 `httpx-ntlm` 发送带 NTLM 身份验证的 HTTP 请求:
```python
import httpx
from httpx_ntlm import HttpNtlmAuth
# 设置用户名和密码
username = "DOMAIN\\user"
password = "your_password"
# 创建 NTLM 身份验证对象
auth = HttpNtlmAuth(username, password)
# 初始化 Client 并挂载自定义传输配置 (可选)
mounts = {
"all://": httpx.HTTPTransport(http2=False),
}
client = httpx.Client(auth=auth, mounts=mounts)
# 执行 GET 请求
response = client.get("https://example.com/protected-resource")
# 输出响应状态码和内容
print(f"Status Code: {response.status_code}")
print(response.text)
```
上述代码展示了以下几个要点:
1. **HttpNtlmAuth 类**:这是核心类,负责处理 NTLM 身份验证逻辑。
2. **Client 配置**:通过 `httpx.Client()` 方法创建一个新的客户端实例,并传递 `auth` 参数指定 NTLM 身份验证。
3. **Mounts 自定义传输层**:如果需要禁用特定域名上的 HTTP/2 协议,则可以像引用中提到的方式设置 `mounts` 参数[^1]。
---
#### 注意事项
1. **兼容性问题**:确保所使用的 `httpx` 版本与 `httpx-ntlm` 兼容。某些旧版可能不支持最新的功能特性。
2. **HTTP/2 支持**:由于 NTLM 身份验证机制较为复杂,在启用 HTTP/2 后可能会遇到一些未预期的行为。因此建议暂时关闭 HTTP/2 功能以避免潜在错误。
3. **安全性提示**:在生产环境中,请务必妥善保管敏感信息(如用户名和密码),并通过加密手段保护通信链路。
---
###
阅读全文
相关推荐


















