Python中get、post请求详解(HTTP请求头、状态码)


我们知道通常浏览器支持get与post两种常见的请求方式,那么在python当中如何具体实现呢?

GET

首先是get,我们知道get指令比较简单,通常便是在浏览器窗口地址栏中使用?xx=xxxxx
那么在python当中如何实现这个过程呢?
首先我们需要了解requests模块

1)导入模块

import requests

2)发送请求

import requests

r = requests.get('https://www.baidu.com')       # 最基本的不带参数的get请求
re = requests.get(url='https://www.baidu.com/s', params={'wd':'python'})      # 带参数的get请求

这便实现了一个?get请求

3)响应请求

r.encoding                       #获取当前的编码
r.encoding = 'utf-8'             #设置编码
r.text                           #以encoding解析返回内容。字符串方式的响应体,会自动根据响应头部的字符编码进行解码。
r.content                        #以字节形式(二进制)返回。字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩。

r.headers                        #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.request.headers				# 前提是你要在参数里面写入了headers
r.status_code                     #响应状态码
r.raw                             #返回原始响应体,也就是 urllib 的 response 对象,使用 r.raw.read()   
r.ok                              # 查看r.ok的布尔值便可以知道是否登陆成功
 #*特殊方法*#
r.json()                         #Requests中内置的JSON解码器,以json形式返回,前提返回的内容确保是json格式的,不然解析出错会抛异常
r.raise_for_status()             #失败请求(非200响应)抛出异常

POST

与get类似这里多说一点就是可以发送json请求

import requests
import json
  
r = requests.post('https://www.baidu.com', data=json.dumps({'name': 'value'}))
print(r.json())

这里再比较下请求头与响应头

import requests


headers = {
        'Referer': 'https://www.csdn.net/', 
    }
re = requests.get('http://www.baidu.com')
print(re.headers)
print(re.request.headers)

HTTP请求头

这里列举几个常见的:

'Referer': 当前网页从哪里跳转来
'User-Agent': 浏览器代理信息,
'Accept-encoding': 浏览器接收的编码,
'Location': 跳转到哪里,通常是3XX请求

HTTP响应状态码

1XX---信息提示
2XX---成功
3XX---重定向
4XX---客户端错误
5XX---服务端错误

会话保持

通常我们想要在请求一次后保持会话这时候我们就需要使用seesion
se = requests.Session()
se.get()
se.post()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值