首页 > 编程语言 >python-requests的简单用法

python-requests的简单用法

时间:2022-11-04 11:04:24浏览次数:70  
标签:http get python 用法 org print httpbin requests


做一个总结~以便以后参考
本文参考:​​​添加链接描述​

import requests

GET请求

eg:

r = requests.get('http://httpbin.org/get')
print(r.url)

python-requests的简单用法_github

传参

eg:

load = {'key1':'value1','key2':'value2','key3':'None'}
r = requests.get('http://httpbin.org/get',params = load)
print(r.url)

python-requests的简单用法_github_02

用列表传递参数

eg:

load = {'key1':'value1','key2':['value2','value3']}
r = requests.get('http://httpbin.org/get',params = load)
print(r.url)

python-requests的简单用法_状态码_03

r.raw返回原始socket respons,需要加参数stream=true
r = requests.get('https://api.github.com/events', stream = True)
print(r.raw)
print(r.raw.read(10))

python-requests的简单用法_状态码_04

传递headers

eg:

url = 'http://httpbin.org'
headers = {'user-agent':'my-app/0.0.1'}
r = requests.get(url,headers = headers)
print(r.url)

python-requests的简单用法_重定向_05

传递cookies
url = 'http://httpbin.org/cookies'
r = requests.get(url,cookies=dict(cookies_are='working'))
#r.text 返回headers中的编码解析的结果,可以通过r.encoding = 'gbk'来变更解码方式
print(r.text)

python-requests的简单用法_重定向_06

JSON响应内容
import requests
r = requests.get('https://github.com/timeline.json')
print(r.json())

POST请求

传递表单
r = requests.post('http://httpbin.org/post',data={'key':'value'})

load = {'key1':'value','key2':'value2'}
r = requests.post('http://httpbin.org/post',data=load)
print(r.text)

python-requests的简单用法_状态码_07

POST提交文件

先制作一个text文件,名为‘test.txt’,内容是‘this is a file’。Requests使得上传多部分编码文件变得很简单:

url = 'http://httpbin.org/post'
files = {'file': open('test.txt', 'rb')}
r = requests.post(url, files=files)
print(r.text)
POST提交表单

传递一个字典给 data 参数就可以了。数据字典在发出请求时会自动编码为表单形式:

payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
响应状态码

使用r.status_code返回响应的状态码

r = requests.get("http://httpbin.org/get")
print(r.status_code)

为使用方便,Requests还附带了一个内置的状态码查询对象:

r = requests.get("http://httpbin.org/get")
print(r.status_code)
print(r.status_code == requests.codes.ok)
异常

如果发送了一个失败请求(非200响应),我们可以通过 Response.raise_for_status()来抛出异常:

bad_r = requests.get('http://httpbin.org/status/404')
print(bad_r.status_code)
bad_r.raise_for_status()

python-requests的简单用法_github_08


如果返回码是200,则不会抛出异常,即:

bad_r = requests.get('http://httpbin.org/get')
print(bad_r.status_code)
bad_r.raise_for_status()

python-requests的简单用法_重定向_09

读取头部信息
r = requests.get("http://httpbin.org/get")
print(r.headers)
print(r.headers['Content-Type'])

python-requests的简单用法_状态码_10

重定向与请求历史

默认情况下,除了 HEAD, Requests会自动处理所有重定向。
可以使用响应对象的 history 方法来追踪重定向。

r = requests.get('http://github.com')
print(r.url)
print(r.status_code)
print(r.history)
#如果你使用的是GET, OPTIONS, POST, PUT, PATCH 或者 DELETE,,那么你可以通过 allow_redirects 参数禁用重定向处理:
r = requests.get('http://github.com', allow_redirects=False)
print(r.status_code)

r.history
#如果使用的是HEAD,你也可以启用重定向:
r = requests.head('http://github.com', allow_redirects=True)
print(r.url)
print(r.history

python-requests的简单用法_github_11


标签:http,get,python,用法,org,print,httpbin,requests
From: https://blog.51cto.com/u_15861560/5822294

相关文章

  • python-迭代器与生成器
    迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。迭代器有两个基本的方法:iter()和next()。字符串,列表或元组对象都可用于创建......
  • python-求三角形的面积
    计算三角形的面积法一:#计算三角形的面积a=float(input('输入三角形第一边长:'))b=float(input('输入三角形第二边长:'))c=float(input('输入三角形第三边长:'))whilea......
  • python-当字符串为空则抛出异常
    今天有一个需求,判断字符串是否为空,为空则抛出异常python的异常有个大基类,承的是Exception。所以我们自定义类也必须继承Exception#最简单的自定义异常classFError(Exceptio......
  • Python-SMTP发送邮件
    之前学习过SMTP(SimpleMailTransferProtocol,知道是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很......
  • python-二次方程
    导入cmath模块,计算复杂数学运算eg:我们计算二次方程式ax**2+bx+c=0代码如下:importcmatha=float(input('输入a:'))b=float(input('输入b:'))c=float(in......
  • Python yield 使用浅析
    之前了解了生成器的概念,带有yield的函数在Python中被称之为generator(生成器),那么应该什么时候使用呢?举个例子:简单输出斐波那契數列前N个数deffab(max):n,a,b=......
  • python之sys模块
    python之sys模块详解之前用过sys模块的一种用法,今天总结一下。sys.argv功能:在外部向程序内部传递参数eg:#!/usr/bin/envpythonimportsysprint(sys.argv[0])print(sys.arg......
  • python画图 去除横纵坐标值;设置横纵坐标名称;设置坐标轴刻度大小
    1.去除横纵坐标值plt.xticks([])#去掉横坐标值plt.yticks([])#去掉纵坐标值2.设置横纵坐标名称ax1.set_xlabel('Outputclass',fontsize=24)#设置x轴名称a......
  • python 中将单条scaffold的碱基序列按照指定数目输出
      001\[root@pc1test3]#cata.fa>chr1cccccggggggggttttggcccgggggg>chr2uuuuutttttNNNNNddffffdddgggggggggggcccccccccc[root@pc1test3]#cattest.py#......
  • Java四舍五入的常见方法(DecimalFormat 用法详解)
    对Java中DecimalFormat的所有基础用法进行了一个汇总。DecimalFormat类主要靠#和0两种占位符号来指定数字长度。0表示如果位数不足则以0填充,#表示只要有可能就......