我正在尝试使用 tornado.httpclient
向JSON API发送HTTP请求,例如 https://api.github.com
,我发现它总是以FORBIDDEN 403响应 .
简化,我使用CLI发出请求:
$ python -m tornado.httpclient https://api.github.com
得到 tornado.httpclient.HTTPError: HTTP 403: Forbidden
.
另一方面,如果我尝试通过浏览器或简单的 $ curl https://api.github.com
请求此URL,则响应为200 OK和正确的JSON文件 .
是什么造成的?我应该在 tornado.httpclient
请求上设置一些特定的 Headers 吗?与 curl
请求有什么区别?
3 回答
您必须将用户代理放入请求中,有关详细信息,请参阅Github API:
这可能是他们robots.txt的问题 . 也许tornado.httpclient以一种使其看起来像网络爬虫的方式修改User-Agent?我不熟悉它 .
我遇到类似的问题和问题是
configurable-http-proxy
所以我杀了它的进程并重新启动jupyterhub
ps aux | grep configurable-http-proxy
如果上面的命令有任何pid,请用它们杀死它们
kill -9 <PID>
并重新启动``