signed

QiShunwang

“诚信为本、客户至上”

python发送http请求

2021/4/26 17:20:42   来源:

前言

在python中,发送http大多使用requests来发送,因为他使用起来非常方便,代码非常简洁。

快速入门

1.发送get请求

# 导入requests包
import requests

url = "http://www.tuling123.com/openapi/api"
myParams = {"key":"username","info":"plusroax"} # 字典格式,推荐使用,它会自动帮你按照k-v拼接url
res = requests.get(url=url, params=myParams)

print('url:',res.request.url)# 查看发送的url
print("response:",res.text)  # 返回请求结果

可以看到,他帮我们自动拼接url地址了

2.发送post请求

# 导入requests包
import requests

url = "http://httpbin.org/post"
data = {"name": "plusroax","age": 18} # Post请求发送的数据,字典格式
res = requests.post(url=url, data = data)#这里传入的data,是body里面的数据。params是拼接url时的参数

print("发送的body:",res.request.body)
print("response返回结果:",res.text)

 

常用请求参数:

  • url: url地址
  • params:url参数,字典格式,使用此参数会自动拼接到url地址中
  • data: 请求body中的数据,字典或字符串格式
  • headers: 请求头信息,字典格式
  • cookies: 字典格式,可以通过携带cookies绕过登录
  • files: 字典格式,用于混合表单(form-data)中上传文件
  • auth: Basic Auth授权,数组格式 auth=(user,password)
  • timeout: 超时时间(防止请求一直没有响应,最长等待时间),数字格式,单位为秒

常用返回结果:

  • res.status_code: HTTP状态码,如200
  • res.reason: HTTP状态码含义,如 OK
  • req.headers: HTTP响应头信息
  • req.text:返回结果,按req.encoding解码
  • req.cookies: 响应的cookieJar对象,可以通过req.cookies.get(key)来获取响应cookies中某个key对应的值
  • req.encoding: 解码格式,可以通过修改req.encoding='utf-8'来解决一部分中文乱码问题
  • req.apparent_encoding:真实编码,由chardet库提供的明显编码
  • req.json(): (注意,有括号),响应的json对象(字典)格式,慎用!如果响应文本不是合法的json文本,或报错