一次小优化——请求后台返回RTSP获取筛选

简介: 一次小优化——请求后台返回RTSP获取筛选

在做视觉的时候,需要通过请求海康后台得到RTSP值


流程


1.从数据库获取相机编码(相机编码都为海康平台提供)


2.发送POST请求相机编码(这部分单位里JAVA使用海康的包进行转接请求)


3.对返回的数据正则化获取RTSP(相机编码正确+请求接口正确)


返回数据样例:


分别为含有RTSP(正确)、data:None 、未查到相机编码


{'code': 200, 'data': '{"code":"0","msg":"success","data":{"url":"rtsp://202.110.241.70:556/openUrl/z3dTw08"}}'}
{'code': 200, 'data':'None'}
{'code': 200, 'data': '{"code":"0x01b01301","msg":"Camera not found. cameraIndexCode not found, cameraIndexCode=24f5fd1866dd4367ac3d3146bf96629b","data":null}'}

逐步改进:


起初以为返回参数是肯定是含有rtsp的,结果后面出现了:'data':'None' 现象,自己就加了个判别条件:

RestInfo = self.UrlHighAltitudeIndexCode + CamId
RestData = requests.post(RestInfo)
RestDataDict = RestData.json()
Datas = RestDataDict['data']
print(RestDataDict)
RTSP = None
if Datas is not None:
    Data_RestDataDict = ((eval(RestDataDict['data']))['data'])
    RTSP = Data_RestDataDict['url']
return RTSP

随着程序后面运行着报错,发现了:Camera not found. cameraIndexCode not found ,于是自己就又开始叠罗汉:

RestInfo = self.UrlHighAltitudeIndexCode + CamId
RestData = requests.post(RestInfo)
RestDataDict = RestData.json()
Datas = RestDataDict['data']
print(RestDataDict)
RTSP = None
if Datas is not None:
    EoorCode = "0x01b01301"
    RightCode = EoorCode in Datas
    print(CamId, RightCode)
    if RightCode is False:
        Data_RestDataDict = ((eval(RestDataDict['data']))['data'])
        RTSP = Data_RestDataDict['url']
return RTSP

感觉自己写的是坨粑粑,深恶痛及,不过还好这会还好是可以用的。


良久感觉不能写坨屎出来,就算是坨屎,那也得是懒洋洋。


截止目前的一版,可算是通过是否含有rtsp来筛选RTSP了


data = {'cameraIndexCode': CamId}
RestData = requests.post(self.UrlConstructionIndexCode, data=data)
RestDataDict = RestData.json()
# print(RestDataDict)
RTSP = None
RightInfo = "rtsp" in str(RestDataDict)
if RightInfo is True:
    Data_RestDataDict = ((eval(RestDataDict['data']))['data'])
    RTSP = Data_RestDataDict['url']
return RTSP

不知道还能再优化下不


相关文章
|
7月前
|
Web App开发 前端开发 网络协议
API 请求慢?这次锅真不在后端
API 请求慢?这次锅真不在后端
103 0
|
3月前
|
网络协议
浅谈网页从请求到显示的过程
浅谈网页从请求到显示的过程
|
3月前
|
Python
8. 如何解决 Tornado 检测到了有事件(events)被发送到一个已经关闭的流(stream)。在 Tornado 中,一个流代表一个请求或响应的数据流。这个警告可能意味着在请求处理的过程中,
8. 如何解决 Tornado 检测到了有事件(events)被发送到一个已经关闭的流(stream)。在 Tornado 中,一个流代表一个请求或响应的数据流。这个警告可能意味着在请求处理的过程中,
|
4月前
|
运维 Serverless 调度
函数计算产品使用问题之怎么在HTTP触发的函数里添加或读取自定义头部
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
存储 JavaScript Serverless
函数计算产品使用问题之如何获取请求ID并响应给调用者
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
弹性计算 运维 监控
监控 HTTP 服务器的状态(测试返回码)
【4月更文挑战第28天】
70 0
|
数据可视化 BI API
如何开放自己的API接口给他人调用并限制请求次数?
你将学到什么? 可以帮助你实现:将自己的API接入到果创云,然后创建子应用给到你的客户或你的开发者进行接口调用,并统计调用次数。平台暂时不支持线上结算,需要自己进行线下接口调用次数的内部结算。
|
JSON PHP 数据格式
响应 方式
响应 方式
|
测试技术
【解决方案 十】判断URL请求是否成功并检测访问效率
【解决方案 十】判断URL请求是否成功并检测访问效率
288 0
|
Web App开发 网络协议 安全
GET和POST方式请求API接口数据返回
GET和POST方式请求API接口数据返回
178 0