Python:
发出 HTTP 请求

How to:

如何操作: 使用Python的requests库,发送一个简单的HTTP GET请求:

import requests

response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())

样例输出:

200
{'current_user_url': 'https://api.github.com/user', 'current_user_authorizations_html_url':...}

发送POST请求,并传递数据:

import requests

data = {'key': 'value'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())

样例输出:

200
{
  ...
  'form': {
    'key': 'value'
  },
  ...
}

Deep Dive

深入探讨: HTTP请求的历史可以追溯到1990年代初的网络基础设施。Python的urllib库是处理HTTP的早期工具,但它的使用比较复杂。后来,requests库出现了,因其简洁且易于使用的接口受到喜爱。

替代方案包括使用http.client(更底层)、aiohttp(异步请求)以及各种HTTP客户端框架,如Tornado。底层实现涉及套接字编程和HTTP协议的遵从。

See Also

查看更多:

  • 官方requests库文档:https://requests.readthedocs.io/
  • Python官方HTTP客户端库文档:https://docs.python.org/3/library/http.client.html
  • HTTP协议详细信息:https://www.ietf.org/rfc/rfc2616.txt
  • aiohttp文档:https://docs.aiohttp.org/