requests简单使用随笔

 为防止服务器不能及时响应,发至外部服务器的请求都应该带着 timeout 参数。

在默认情况下,除非显式指定了 timeout 值,requests 不会自动进行超时处理,代码可能会挂起若干分钟。

连接超时一般设置为5秒,因为 TCP 数据包重传窗口 的默认大小是 3秒。

如果发现设置timeout=5后长时间不响应问题依然存在,可以将timeout里的参数细化 timeout=(3,7)

# python requests
# 使用requests模拟登陆,获取数据,提交数据
url = 'www.jd.com'

1.GET请求
    ret = requests.get(url=url, params=None)


2.POST请求
    data = {"username": "root", "password": "pwd"}
    ret = requests.post(url=url, data=data)


3.PUT请求
    data = {"key": 'val'}
    data = json.dumps(data)
    # {'Connection': 'close'}  请求后及时断开,防止重复多次请求造成500
    headers = {'Content-Type': 'application/json', 'Connection': 'close'}
    auth = ('username', 'password')
    ret = requests.put(url=url, data=data, headers=headers, auth=auth)


4.session 记录登录状态
    session_requests = requests.session()
    login_url = "https://passport.jd.com/new/login"
    payload = {"username": "username", "password": "pwd"}
    session_requests.post(url=login_url, data=payload)

  # 可直接进行登录后的操作
    session_requests.get(url)
    session_requests.post(url, data)
    session_requests.close()          # 及时关闭


5.各参数的含义
    resp = requests.post(url=url, data=data, headers=headers, auth=auth, verify=False, timeout=5)
       url: 请求路径
       data: 请求数据
       headers: 请求头
       auth: 用户名和密码
       verify: False关闭证书认证
       timeout: 超时时间(s)

    resp.status_code: 返回的状态码
    resp.headers: 返回的请求头
    resp.content: 返回的数据内容(bytes)

猜你喜欢

转载自blog.csdn.net/LeonTom/article/details/82629267