今天老王用 Flask 在本地发布一个 Python 服务后,浏览器可以正常访问,但是尝试用 requests 测试下这个 API 接口,却直接返回了 503 错误,下面分享下出现这个问题的原因和解决方法。
一、问题原因
浏览器可以正常访问 Flask 服务,说明这个 Python 服务本身是没有问题的,requests 代码也很简单,就是最简单的 get 请求,url 指向本地:http://127.0.0.1:8088/predict。
requests 503 错误的原因是 Service Unavailable,表示服务器暂时不能处理这个请求。后来想了想可能是因为自己在 Pycharm 设置过 pip 下载加速(PyCharm 设置代理加速 install package 的速度》,所以 requests 请求默认也走代理了,所以 127.0.0.1 并没有正确访问到本地的服务。
二、解决方法
解决方法也很简单,设置 requests 不走代理即可:
url = 'http://127.0.0.1:8088/predict' proxies = { "http": None, "https": None, } files = {'file': open('test.jpg', 'rb')} res = requests.post(url, proxies=proxies, files=files) print(res.text)
设置完后,果然可以正常访问 API 了。