request是python的第三方库,使用上比urllib和urllib2要更方便。

0x01

使用session发送:能保存一条流中获取的cookie,并自动添加到http头中

s = requests.Session()

resp=s.get(url,headers=header,verify=False,timeout=10)

0x02

post请求中payload的赋值

payload={

'param1':'value1',

'param2':'value2',

'param3':'value3'

}

resp=s.post(url,headers=header,data=payload,verify=False,timeout=10)

抓包可以看到发送的data部分为:

param1=value1&param2=value2&param3=value3

如果需要对值中的数据进行url编码:

import urllib

payload="captchaChannel=211&params=\"123455\""

urllib.quote(payload,''=&")

第二个参数表示不需要编码的字符,上例中只对引号“进行url编码,载荷为:

captchaChannel=211&params=%22123455%22

0x03

post请求中既有payload,又要发送文件:

假设文件是png格式图片,使用如下方式发送:

image_file=open('img.png', 'rb').read()

files = {'image': ('img.png', image_file)}

params = {

'username': self.username,

'password': self.password,

'softid': self.soft_id,

'softkey': self.soft_key

}

resp= s.post(url, data=params, files=files, headers=self.headers)

可以看到发送的内容是这样的,boundary应该是时间进行md5运算得到的值。这个后面跟的内容就是image文件。

0x04 headers的赋值

对于post请求可以不用手动填写Content-length,requests会自动帮我们计算并填写。

headers使用字典格式赋值:

header={
'Host': 'www.******.com',\
'Connection': 'keep-alive', \
'Accept': '*/*', \
'Origin': 'https://www.*****.com', \
'X-Requested-With': 'XMLHttpRequest', \
'User-Agent': 'Mozilla/4.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.116 Safari/537.36',\
'Referer': 'https://www.*******************', \
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', \
'Accept-Encoding': 'gzip, deflate, br',\
'Accept-Language':'zh-CN,zh;q=0.8', \
} add_header={
'add1':'11111',
'add2':'22222'
}

如果后续请求中需要添加字段,可以使用:

header.update(add_header)

0x05 使用requests访问https

访问https的时候可以使用verify=False关掉验证

r = resuqests.get("https://www.baidu.com",verify=False)

print r.text

但是在一台新装centos系统上如上运行,出现了报错,经过分析,发现是新系统没有装ssl证书。

安装参考:http://blog.csdn.net/zuoyigexingfude/article/details/51035613

requests使用小结(不定期更新)的更多相关文章

  1. 基于C/S架构的3D对战网络游戏C++框架 _【不定期更新通知】

    由于笔者最近有比赛项目要赶,这个基于C/S架构的3D对战网络游戏C++框架也遇到了一点瓶颈需要点时间沉淀,所以近一段时间不能保证每天更新了,会保持不定期更新.同时近期笔者也会多分享一些已经做过学过的C ...

  2. 从壹开始前后端分离 [.netCore 不定期更新 ] 三十五║ 完美实现全局异常日志记录

    缘起 哈喽我是不定期更新的日常,昨天群里小伙伴问到了记录日志,当然,以前我也挖过这个坑,后来一直没有来得及填上,也想着 swagger 一直又有错误信息展示的功能,就迟迟没有添加这个功能,不过昨天夜里 ...

  3. net core 小坑杂记之配置文件读取(不定期更新)

    其实很早就想写了,原想等积累差不多了再写的,但是发现遇到一个当时记下效果会比较好,所以就不定期更新这个系列了,后面获取会整个整理一下. 此篇记载net core入门时踩的一些坑,网上教程太少了,也不规 ...

  4. React性能优化记录(不定期更新)

    React性能优化记录(不定期更新) 1. 使用PureComponent代替Component 在新建组件的时候需要继承Component会用到以下代码 import React,{Componen ...

  5. 不定期更新的IDEA功能整理

    目录 不定期更新的IDEA功能整理 idea 命令 Preferences 和 Project Structure Keymap HTTP Proxy Postfix Completion 插件 插件 ...

  6. 采用异步来实现重新连接服务器或者重新启动服务 C#中类的属性的获取 SignalR2简易数据看板演示 C#动态调用泛型类、泛型方法 asp .net core Get raw request. 从壹开始前后端分离[.NetCore 不定期更新] 38 ║自动初始化数据库

    采用异步来实现重新连接服务器或者重新启动服务 开启异步监听,不会导致主线程的堵塞,在服务异常断开后一直检测重新连接服务,成功连接服务后通知各个注册的客户端! #region 检测断线并重连OPC服务 ...

  7. JavaScript中的小陷阱(不定期更新。。)

    1. var scores = [1, 2, 3]; var total = 0; for (var score in scores) { total += score; } var mean = t ...

  8. Keras 文档阅读笔记(不定期更新)

    目录 Keras 文档阅读笔记(不定期更新) 模型 Sequential 模型方法 Model 类(函数式 API) 方法 层 关于 Keras 网络层 核心层 卷积层 池化层 循环层 融合层 高级激 ...

  9. GOM通区插件-支持GOM绝对路径-读取配置项-分割字符等功能。不定期更新

    A-A+ 2019年07月19日 Gom引擎 阅读 45 views 次   [@Main] #IF #SAY [<读配置项/@读配置项>] [<写配置项/@写配置项>] [& ...

随机推荐

  1. 海康 - 终端服务器 - TS-5012-F

    简介 型号描述 主要特点 典型应用 技术参数        型号 参数 TS-5012-F (1T) TS-5012-F (2T) TS-5012-F (4T) TS-5012-F (8T) 系统参数 ...

  2. 题解 CF171A 【Mysterious numbers - 1】

    又是愚人节题目qwq-- 说一下题意吧: 把第1个数翻转后加第二个数 具体思路: 1.定义变量,进行输入 int a,b; cin>>a>>b; 2.定义一个变量c,作为存储第 ...

  3. 基于alpine的php-fpm扩展swoole和pdo_mysql

    vim Dockerfile 插入一下内容 FROM php:fpm-alpine RUN echo http://mirrors.aliyun.com/alpine/v3.10/main>/e ...

  4. Postgresql 教程

    Official 教程 关闭postgresql服务 PostgreSQL帐号 1. PostgreSQL 用户帐号和操作系统用户帐号是不同的,系统用户帐号是postgres. sudo -u pos ...

  5. Linux源码编译安装php7.3

    ---恢复内容开始--- ps:一切从简 一.安装所需环境 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel ...

  6. laravel中如何区分get数据和post数据

    可能有时候会碰到这样的场景: 有一个post提交请求,请求地址为:xxx?id=10,提交的post数据为:id=20而在控制器中,我要同时得到get和post中数据get中的id为10,而post中 ...

  7. Windows下Go安装&环境配置&编译运行

    Go下载安装 官方Go下载站点:https://golang.google.cn/ 也可以选择:https://studygolang.com/dl 配置环境变量 常用环境变量 GOROOT GORO ...

  8. SQLServer使用链接服务器远程查询

    --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogi ...

  9. docker映射

    端口映射 大-P对容器暴露的所有端口进行映射 小-p可以指定对哪些端口进行映射 第一种,只指定容器的端口,宿主机的端口是随机映射的 第二种,宿主机的端口和容器的端口一一对应, 第三种,只配置容器的ip ...

  10. SQL Server中使用msdb数据库的存储过程sp_delete_backuphistory和sp_delete_database_backuphistory来删除备份和恢复历史数据

    根据微软文档对sp_delete_backuphistory存储过程的介绍,SQL Server在每次备份和恢复数据库后,会向msdb系统数据库的备份和恢复历史表写入数据,如果SQL Server经常 ...