python request 请求时报措HTTPSConnectionPool(host=‘1.0.0.0‘, port=443)解决方式,以及拦截方式

 HTTPSConnectionPool(host='1.0.0.0', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_read_bytes', 'sslv3 alert handshake failure')])")))
 

一、产生原因和解决方式

1、开启了fiddle会导致某些网站不能访问,关闭fiddle。

2、系统设置了代理,开启了internet选项中的网络连接代理如图:关闭就可以解决

3、requests.exceptions.SSLError,ssl证书错误,可尝试设置不校验证书,当然,也可以传输证书进行校验

requests.get(url,verify=False)#跳过证书校验
requests.get(url,verify='证书路径')#校验证书

 

二、拦截方式。

在我们使用requests模块进行爬虫操作是,如果连接报这个错,那我们要如何进行拦截呢。

直接拦截这个模块的抛出的错误信息。这样就可以成功拦截下来了。

try:
    request.get(url)
except requests.exceptions.SSLError as e:#拦截vrequests.exceptions.SSLError这个错误
      print(e)

三、举一反三

同理,我们为什么要拦截的是这个错误,信息我们需要知道,来看一下原报措信息。如图,便是报措信息。

同样的,当我们再次遇到这种报措信息时需要拦截,那我们就可以找到对应的错误信息,进行拦截。

import fastapi from DK import DKTool from Modbus import ModbusMaster from pydantic import BaseModel app = fastapi.FastAPI() device = ModbusMaster('COM1', 9600) DkTools = DKTool() @app.on_event("startup") async def startup_event(): DkTools.SetConnect("192.168.1.1", 5000) #DkTools.Open() print("startup") @app.post("/ClearTorqueResult") async def ClearTorqueResult(): try: DkTools.Open() DkTools.ClearResult() return {"status": 0, "msg": "success"} except Exception as ex: return {"status": -1, "msg": str(ex), "data": None} @app.post("/EnableTorque") async def EnableTorque(): try: DkTools.Open() DkTools.Enable() return {"status": 0, "msg": "success"} except Exception as ex: return {"status": -1, "msg": str(ex), "data": None} @app.get("/ReadTorqueResult") async def ReadTorque(): try: DkTools.Open() return {"status": 0, "msg": "success", "data": DkTools.GetResult()} except Exception as ex: return {"status": -1, "msg": str(ex), "data": None} class JobInfo(BaseModel): Job:int # 写一个接口 @app.post("/SetPset") async def SelectJob(info:JobInfo): try: DkTools.Open() return {"status": 0, "msg": "success", "data": DkTools.SelectJob(info.Job)} except Exception as ex: return {"status": -1, "msg": str(ex), "data": None} # 写一个接口 @app.get("/ReadRegister") async def read_register(slave_id:int,address: int, count: int): try: data = device.read_register(slave_id,address, count) return {"status": 0, "msg": "success", "data": data[0]} except Exception as ex: return {"status": 0, "msg": str(ex), "data": "1"} # 写一个接口 @app.get("/RelayInput") async def RelayInput(slave_id:int,port: int, bit: int): try: data = device.RelayInput(slave_id,port, bit) return {"status": 0, "msg": "success", "data": data} except Exception as ex: return {"status": 0, "msg": str(ex), "data": "1"} #return {"status": -1, "msg": str(ex), "data": None} # 写一个接口 @app.get("/ReadRegisterBit") async def read_register_bit(slave_id:int,address: int, register_bit: int): try: data = device.read_register_bit(slave_id,address, register_bit) return {"status": 0, "msg": "success", "data": data} except Exception as ex: return {"status": 0, "msg": str(ex), "data": "1"} #return {"status": -1, "msg": str(ex), "data": None} class WriteObject(BaseModel): slave_id:int address: int value: int # 写一个post接口 @app.post("/WriteRegister") async def write_register(data: WriteObject): try: device.write_register(data.slave_id,data.address, data.value) return {"status": 0, "msg": "success","data": 0} except Exception as ex: #return {"status": -1, "msg": str(ex), "data": "1234"} return {"status": -1, "msg": str(ex), "data": None} class WriteOutputObject(BaseModel): slave_id:int port: int value: int # 写一个接口 @app.post("/RelayOutput") async def RelayOutput(data:WriteOutputObject): try: data = device.RelayOutput(data.slave_id, data.port, data.value) return {"status": 0, "msg": "success", "data": data[0]} except Exception as ex: return {"status": 0, "msg": str(ex), "data": "1"} #return {"status": -1, "msg": str(ex), "data": None} if __name__ == '__main__': import uvicorn # uvicorn.run(app, host="0.0.0.0", port=58000,log_level="warning") uvicorn.run(app, host="127.0.0.1", port=58000) 剖析
最新发布
05-27
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大家一起学编程(python)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值