首页 文章

使用Tornado httpclient对Github API的简单未授权请求返回Forbidden

提问于
浏览
1

我正在尝试使用 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 回答

  • 1

    您必须将用户代理放入请求中,有关详细信息,请参阅Github API

    所有API请求必须包含有效的User-Agent标头 . 没有User-Agent标头的请求将被拒绝 . 我们要求您使用GitHub用户名或应用程序名称作为User-Agent标头值 . 如果有问题,我们可以与您联系

  • 0

    这可能是他们robots.txt的问题 . 也许tornado.httpclient以一种使其看起来像网络爬虫的方式修改User-Agent?我不熟悉它 .

  • 0

    我遇到类似的问题和问题是 configurable-http-proxy 所以我杀了它的进程并重新启动 jupyterhub

    ps aux | grep configurable-http-proxy

    如果上面的命令有任何pid,请用它们杀死它们

    kill -9 <PID>

    并重新启动``

相关问题