天天看点

python requests访问报403 "Invalid username/password."

使用python requests访问一个rest api时,总是报错:

换成curl访问就没有问题。

为什么会这样呢?

把requests的请求header print出啦,看到加了authorization,但是代码并没有使用任何认证。

猜测和机器环境有关系。用户认证信息应该是存在某个文件中的吧?

用strace看一下打开了哪些文件

访问了一个可疑文件 ~/.netrc

把这个文件拿掉,接口访问就没有报错了。

查一下requests的文档,requests果然会读取.netrc文件

<a href="http://docs.python-requests.org/en/master/user/authentication/?highlight=netrc">http://docs.python-requests.org/en/master/user/authentication/?highlight=netrc</a>