Python请求带NTLM认证的Express(Node.js)服务器遇401未授权问题
解决Python请求Express NTLM认证服务401未授权问题
我之前踩过完全一样的坑!requests默认的auth参数只支持Basic认证,而你的Express服务启用的是NTLM认证机制,所以直接传账号密码肯定过不了校验。
给你一个简单可行的解决方案:
- 首先安装专门支持NTLM认证的扩展库
requests-ntlm:pip install requests-ntlm - 然后修改你的请求代码,用
HttpNtlmAuth替代默认的auth方式:from requests_ntlm import HttpNtlmAuth import requests # 发起带NTLM认证的请求 resp = requests.get( 'https://myWebsite.com/something', auth=HttpNtlmAuth('myuser', 'mypass') ) # 可以加上这个来主动抛出异常,方便排查问题 resp.raise_for_status()
这个库会自动帮你处理NTLM认证的完整握手流程——包括第一次收到401响应后,自动发起认证协商请求,完全适配Express的NTLM中间件逻辑。另外如果你的服务端要求NTLMv2版本,这个库也会自动兼容,不需要额外配置。
最后提醒下:确保你的requests版本在2.x及以上,避免和requests-ntlm出现兼容性问题。
内容的提问来源于stack exchange,提问作者Gandalf The Gray
相关产品推荐
相关产品推荐

