zoukankan      html  css  js  c++  java
  • python接口自动化(十二)--https请求(SSL)(详解)

    简介

      本来最新的requests库V2.13.0是支持https请求的,但是一般写脚本时候,我们会用抓包工具fiddler,这时候会 报:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

    小编环境:
    python:3.7

    requests:2.21.0

    fiddler:v5.0.20

    python & requests:

     

    Fiddler:

    一、SSL问题

    1、在你不启用fiddler时,python代码直接发送https请求,不会有SSL问题(也就是说不想看到SSL问题,关掉fiddler就行)

    2、启动fiddler抓包,会出现这个错误:

    requests.exceptions.SSLError: HTTPSConnectionPool(host='passport.cnblogs.com', port=443): Max retries exceeded with url: /user/signin (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

    二、verify参数设置

    1、Requests的请求默认verify=True

    2、如果你将 verify设置为 False,Requests 也能忽略对 SSL 证书的验证

    3、但是依然会出现两行Warning,可以不用管

    三、忽略Warning

      有些小伙伴有强迫症看到红色的心里就发慌,这里加两行代码可以忽略掉警告,眼不见为净!

     Python2添加如下代码即可解决:

    1 from requests.packages.urllib3.exceptions import InsecureRequestWarning
    2 # 禁用安全请求警告
    3 requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

    Python3添加如下三种任意一种代码即可解决:

    复制代码
    1 1、requests.packages.urllib3.disable_warnings()
    2 
    3 2、import warnings
    4    warnings.filterwarnings("ignore")
    5 
    6 3、import urllib3
    7   urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    复制代码

    作者:北京-宏哥
  • 相关阅读:
    linux下链接静态链接库
    linux消息队列操作(转)
    android 模块编译,mm 命令
    关于函数里对指针赋值的问题
    Android内核和驱动篇Android内核介绍 (转)
    pthread属性使用(转)
    MOD_INC_USE_COUNT和MOD_DEC_USE_COUNT(转)
    linux下配置文件的读写
    从Linux程序中执行shell(程序、脚本)并获得输出结果(转)
    封装错误信息打印的函数
  • 原文地址:https://www.cnblogs.com/tiechui2015/p/10981858.html
Copyright © 2011-2022 走看看