Python - 自定义 HTTP 请求

  • 简述

    超文本传输协议 (HTTP) 是一种用于启用客户端和服务器之间通信的协议。它作为客户端和服务器之间的请求-响应协议工作。请求设备称为客户端,发送响应的设备称为服务器。
    urllib 是传统的 python 库,在 python 程序中用于处理 http 请求。但是现在有 urllib3 比 urllib 过去所做的要多。我们导入 urllib3 库,看看 python 如何使用它来发出 http 请求并接收响应。我们可以通过选择请求方法来自定义请求的类型。
    
    Pip install urllib3
    
  • 例子

    在下面的示例中,我们使用 PoolManager() 对象来处理 http 请求的连接细节。接下来我们使用 request() 对象通过 POST 方法发出一个 http 请求。最后,我们还使用 json 库以 json 格式打印接收到的值。
    
    import urllib3
    import json
    http = urllib3.PoolManager()
    r = http.request(
        'POST',
        'http://httpbin.org/post',
        fields={'field': 'value'})
    print json.loads(r.data.decode('utf-8'))['form']
    
    当我们运行上述程序时,我们得到以下输出 -
    
    {field': value'}
    
  • 使用查询的 URL

    我们还可以传递查询参数来构建自定义 URL。在下面的示例中,请求方法使用查询字符串中的值来完成 URL,该 URL 可以被 python 程序中的另一个函数进一步使用。
    
    import requests
     
    query = {'q': 'river', 'order': 'popular', 'min_width': '800', 'min_height': '600'}
    req = requests.get('https://pixabay.com/en/photos/', params=query)
     
    print(req.url)
    
    当我们运行上述程序时,我们得到以下输出 -
    
    https://pixabay.com/en/photos/?q=river&min_width=800&min_height=600ℴ=popular