ISAPI之Http返回不同的数据类型

不用海康SDK,用Python+ISAPI搞定热成像数据,我踩过的坑都在这了 本文详细介绍了如何通过Python调用ISAPI接口绕过海康SDK,直接获取热成像设备的温度矩阵数据。文章涵盖了ISAPI接口认证、热成像数据接口调用、Multipart数据流解析等关键步骤,并提供了常见问题的解决方案和调试技巧,帮助开发者高效实现热成像数据的稳定获取与解析。 阅读详情

在写ISAPI程序时,不同的情况可能需要返回不容的数据类型,例如有的http响应需要文本,有的可以是二进制更省流量,有的需要另存为某种文件,示例代码如下。


1返回文本,可以直接以网页的形式打开

DWORD ReturnText(LPEXTENSION_CONTROL_BLOCK pECB,const vector<char>& vecBody)
 {
 	char HeaderBuff[300];
 	DWORD dwBodySize = (DWORD)vecBody.size();
 	DWORD dwHeaderSize = (DWORD)sprintf_s(HeaderBuff,
 		"Content-Type: text/plain\r\n"
 		"Charset: utf-8\r\n"
 		"Cache-Control: no-store\r\n"
 		"Content-Length: %d\r\n\r\n",
 		dwBodySize);
 	if(!pECB->ServerSupportFunction(pECB->ConnID,HSE_REQ_SEND_RESPONSE_HEADER,NULL,&dwHeaderSize,(LPDWORD)HeaderBuff)) 
 	{
 		return HSE_STATUS_ERROR;
 	}
 
 	if (dwBodySize > 0)
 	{
 		if(!pECB->WriteClient(pECB->ConnID,(LPVOID)&vecBody[0],&dwBodySize,0)) 
 		{
 			return HSE_STATUS_ERROR;
 		}
 	}
 	return HSE_STATUS_SUCCESS;
 }


2返回某种文件格式的数据流,弹出保存文件窗口,可设置一个文件名称

DWORD ReturnCSV(LPEXTENSION_CONTROL_BLOCK pECB,const vector<byte>& vecBody, const string& strFileName)
 {
 	char HeaderBuff[300];
 	DWORD dwBodySize = (DWORD)vecBody.size();
 	DWORD dwHeaderSize = (DWORD)sprintf_s(HeaderBuff,
 		"Content-Type: application/vnd.ms-excel\r\n"
 		"Content-Disposition:filename=%s.csv\r\n"
 		"Charset: GB2312\r\n"
 		"Cache-Control: no-store\r\n"
 		"Content-Length: %d\r\n\r\n",
 		strFileName.c_str(), dwBodySize);
 	if(!pECB->ServerSupportFunction(pECB->ConnID,HSE_REQ_SEND_RESPONSE_HEADER,NULL,&dwHeaderSize,(LPDWORD)HeaderBuff)) 
 	{
 		return HSE_STATUS_ERROR;
 	}
 
 	if (dwBodySize > 0)
 	{
 		if(!pECB->WriteClient(pECB->ConnID,(LPVOID)&vecBody[0],&dwBodySize,0)) 
 		{
 			return HSE_STATUS_ERROR;
 		}
 	}
 	return HSE_STATUS_SUCCESS;
 }


3二进制,更省流量

DWORD ReturnBinary(LPEXTENSION_CONTROL_BLOCK pECB,const vector<byte>& vecBody)
 {
 	char HeaderBuff[300];
 	DWORD dwBodySize = (DWORD)vecBody.size();
 	DWORD dwHeaderSize = (DWORD)sprintf_s(HeaderBuff,
 		"Cache-Control: no-store\r\n"
 		"Content-Type: application/octet-stream\r\n"
 		"Content-Length: %d\r\n\r\n",
 		dwBodySize);
 	if(!pECB->ServerSupportFunction(pECB->ConnID,
 		HSE_REQ_SEND_RESPONSE_HEADER,NULL,&dwHeaderSize,(LPDWORD)HeaderBuff)) 
 	{
 		return HSE_STATUS_ERROR;
 	}
 
 	if (dwBodySize > 0)
 	{
 		if(!pECB->WriteClient(pECB->ConnID,(LPVOID)&vecBody[0],&dwBodySize,0))
 		{
 			return HSE_STATUS_ERROR;
 		}
 	}
 	return HSE_STATUS_SUCCESS;
 }

别再手动查日志了!用Java写个HTTP服务,自动接收海康摄像头报警(附完整代码) 本文详细介绍了如何使用Java构建高可靠的海康摄像头报警处理系统,通过自动接收和解析报警数据,提升安防监控效率。文章包含完整的代码实现,涵盖HTTP服务搭建、混合数据解析、存储方案及生产环境优化,帮助开发者快速实现自动化报警处理。 阅读详情

相关推荐

【python中级】通过ISAPI协议接口获得海康IPC云台的PTZ

IPC:IP Camera即网络摄像机。 PTZ : Pan/Tilt/Zoom 的简写,代表云台全方位(左右、上下)移动 及 镜头变倍、变焦控制,实现水平、垂直、ZOOM三维立体方位图像采集。 之前公司软件部门是通过海康SDK,来获得IPC云台的PTZ。查阅网络资料,在ISAPI协议接口下,通过查询海康的接口返回的xml数据可以得到PTZ数据。资源url的请求满足如下格式: 而请求云台的PTZ,则resources 为PTZCtrl 详细请求地址: 比如请求: http://192.168.9.25:80

jn10010537的博客 4342

Http响应码

http状态返回代码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。 http状态返回代码 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。 http状态返回代码 2xx (成功) 表示成功处理了请求的状态代码。 http

zhang434的专栏 1905

25、深入了解HTTP协议与Web开发技术

本文深入探讨了HTTP协议的基本原理及其在Web开发中的应用。内容涵盖HTTP请求与响应的结构、常用HTTP方法(GET、POST、PUT、DELETE)以及关键的请求和响应头信息。同时,文章介绍了多种Web开发技术,包括CGI、WinCGI、ISAPI/NSAPI应用及Apache服务器模块,帮助开发者理解不同技术的工作机制及其与Web服务器的交互方式,为构建高效、安全的Web应用提供理论和技术支持。

food6的博客 38

http接口调用常用Response返回类

http接口调用常用Response返回类

cucgyfjklx的博客 1万+

海康威视ISAPI 2.5图像服务技术详解与实战指南

ISAPI(Internet Server Application Programming Interface)是一种面向网络视频设备的开放应用编程接口标准,广泛应用于安防监控领域的图像与视频服务控制。它通过标准化的HTTP/HTTPS通信协议,实现客户端对摄像头等设备的远程配置、图像抓取、视频流获取及参数调节等功能。其核心优势在于支持RESTful架构风格,提供清晰的资源定位和无状态交互机制,便于系统集成与扩展。

weixin_29317963的博客 1203

从Protocol到硬件控制:揭秘高通UEFI中ABL与XBL的协作机制

本文深入解析了高通UEFI架构中ABL与XBL的协作机制,重点探讨了Protocol通信在硬件控制中的关键作用。通过对比传统GPIO控制方式,揭示了Protocol架构在安全性、可维护性和灵活性方面的优势,并提供了关机充电场景的实战案例分析及调试技巧。

weixin_29185199的博客 431

海康isapi协议原理学习(Intelligent Security API 智能安全API)

ISAPI协议概述 ISAPI的定义 ISAPI全称为Intelligent Security API(智能安全API),是基于HTTP(Hypertext Transfer Protocol)的应用层协议,并采用REST架构(Representational State Transfer, 表述性状态转移),实现安防设备(如摄像机、数字录像机、网络录像机等)与平台或客户端软件之间的通信。 另一说,ISAPI为“网络脚本应用程序接口”(Internet Script Application Program

Dontla的博客 3万+

外设高级定时器互补输出带死区控制实验

外设高级定时器互补输出带死区控制实验

ff_juju的博客 1654

php 控制海康摄像头,通过ISAPI http协议控制海康摄像头

一直用海康的SDK进行摄像头控制,但有时候非常不灵活,必须有X86的主机,在嵌入式上面就不行,通过写一个HTTPCLIENT可以通过ISAPI来控制海康的摄像头。代码如下:git@github.com:hpwang666/httpclient.git以下是部分ISAPI协议:/ISAPI/System/deviceInfo //获取设备信息//控制串口"/ISAPI/System/Serial...

weixin_34471172的博客 4836

NVIDIA Video Codec SDK-解码接口cuvid简介

特性已废弃的 NVCUVID现代的 NVDECODE (底层 API)现代的 NVDECODE (高层 API - NvDecoder)状态已废弃 (Deprecated)官方推荐 (底层控制)官方推荐 (易用性首选)编程模型C 函数C 函数C++ 类复杂度高,需要管理大量细节中高,仍需管理解码会话低,开箱即用灵活性高高中(满足绝大多数场景)推荐对象遗留项目维护需要极致控制的高级用户所有新项目、大多数开发者。

fudexiang的博客 1179

SPD5 集线器协议内容解析

​ 若不同SPD5 Hub后面的本地侧设备同时发送请求,则是22和23、24的混合过程,先通过LID裁决,再通过HID裁决,这里的LID是本地设备的,若LID一致,则看HID,由于SPD5 Hub的本地侧设备HID均为111,因此实际上是比较SPD5 Hub的HID,这个过程在前文提到,SPD5 Hub会转换HID。​ 若MR27[4]=1且MR27[3:0]=1,如果MR51[3:0]=1时,发送IBI,并且MR48[7]置1,将GETSTATUS CCC的待处理中断位[3:0]更新为0001。

weixin_50591344的博客 3860

ISAPI报警模块流程

示例一:布防报警 #include <stdio.h> #include <iostream> #include "Windows.h" #include "HCNetSDK.h" using namespace std; void CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void* pUser) { NET_DV

分享嵌入式,移动端,智能应用,数据库等专业板块,记录知识碎片!!! 1818

SAP BOM批量反查代码分享

SAP BOM反查批量查询代码分享

我小时候很黑的博客 4972

Http协议解析

超文本传送协议(hypertext transfer protocol,HTTP)是万维网(world wide web,www,也简称为web) 的基础,本节主要对http协议进行介绍,并分别给出http多线程服务器和客户程序的实例,而不 介绍有关WEB和浏览器方面的知识。  HTTP是一个属于应用层的面向对象的协议,适用于分布式超媒体信息系统。它于1990年提出, 经过几年的使用与发展

hello_kevinkuang的专栏 657

基于MATLAB的导弹轨迹和撞击位置仿真

本文将介绍如何使用MATLAB进行导弹轨迹和撞击位置的仿真,提高导弹的精确打击能力。首先,我们需要确定导弹的初始位置和速度,以及导弹所受到的外部环境因素如重力、空气阻力等。在MATLAB中,可以通过ODE求解器来模拟导弹的运动轨迹。最后,我们通过控制器输出的控制信号来控制导弹的姿态。通过对导弹的运动轨迹和姿态进行仿真,可以更好地预测和规划导弹的运动轨迹,提高其精确打击能力。在实际作战中,为了提高导弹精确打击能力,需要对导弹的撞击位置进行预测和规划。我们可以通过控制导弹的姿态来实现撞击目标的精确命中。

CyberLynxO的博客 1983

【26美赛E题 Passive Solar Shading】2026美赛数学建模(MCM/ICM)思路解析及代码分享

本文研究了被动太阳能遮阳(PSS)策略在建筑节能中的应用,针对Sungrove大学(低纬高温)和Borealis大学(高纬寒冷)两种典型气候条件,建立了动态太阳辐射-热平衡模型。通过优化遮阳结构(外檐长度、百叶角度)、窗户布局和内部热质量分布,实现了夏季制冷负荷降低30-40%(Sungrove)和冬季采暖负荷减少15-25%(Borealis)。创新性地采用全天候动态遮阳建模方法,结合热质量优化与储能设计,提出了可适应不同气候条件的建筑节能解决方案,为未来可持续建筑设计提供了量化框架。

一键难忘的博客 953

【网络原理】:HTTP、HTTP方法、HTTP的Header、HTTP的状态码

目录HTTP一、HTTP协议二、认识URL三、Web通信过程 HTTP 一、HTTP协议 HTTP协议处于应用层, HTTP协议就是客户端和服务器交互的⼀种通迅的格式。HTTP的诞⽣主要是为了能够让⽂档之间相互关联,形成超⽂本可以互相传阅。 二、认识URL 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。 URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。也

qq_45605223的博客 510

在移动固态上安装ubuntu系统,重启后卡住报错:blk_update_request: I/O error, dev sda, sector ... op 0x0 (READ)如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1801

HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】

这时候只需要使用一个线程(极端情况下,其实大多数实现来说至少需要两个线程,因为需要有一个后台线程去监听任务队列,当任务完成后再分配一个可用线程去处理下面的逻辑)针对这个问题,各大语言都推出了一个叫做线程池的技术,我申请一批线程,持有他,等到有任务的时候直接使用,这样我就不会频繁的创建和销毁线程了。我个人觉得 1是历史兼容性问题,2是必要性问题,线程是一个很好的抽象逻辑。这块的概念非常庞大(还有牵扯到,什么是并发,什么事并行),本文的重点不是这些,大家有兴趣后面可以单独开一篇文章来解释这块的内容。

lXi1Duz5C的博客 184

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

哪些HTTP头会被增加HTTP_前缀

出自:http://www.lxway.com/989489916.htm 上一篇博客:ASP.net 获得客户端的IP相关知识 中我提到了,如果你想编码更改 HTTP_VIA、HTTP_X_FORWARDED_FOR 的值,你需要客户端增加的HTTP Head为:VIA、X_FORWARDED_FOR。即,少个 "HTTP_" 前缀。那么,到底读取这些值时,那些HTTP头增加时候需要增加H

TheoGo的专栏 4313

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

HTTP0.9 vs. HTTP1.0 vs. HTTP1.1 vs. HTTPng

一,HTTP协议最初开始的设计目标就是通过网络来支持Client和Server之间的事务处理。为了适应WWW的需求,在功能和性能方面进行了 大量的改进,最开始出现的HTTP原始协议现在称为HTTP0.9,它是一个面向消息的简单协议,是现在使用的HTTP协议的子集。因此它同 HTTP1.0,HTTP1.1兼容。该协议描述了Client和Server之间请求和响应的过程:Client在本地主机向运行于

dodott的专栏 1974

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

HTTP协议详细介绍

http://blog.youkuaiyun.com/GrayWang83/archive/2008/08/07/2783722.aspxHTTP协议详细介绍     超文本传送协议(hypertext transfer protocol,HTTP)是万维网(world wide web,www,也简称为web)的基础,本节主要对http协议进行介绍,并分别给出http多线程服务器和客户程序的实例

snlying的专栏 582

HTTP协议简明介绍

HTTP协议简明介绍     超文本传送协议(hypertext transfer protocol,HTTP)是万维网(world wide web,www,也简称为web) 的基础,本节主要对http协议进行介绍,并分别给出http多线程服务器和客户程序的实例,而不 介绍有关WEB和浏览器方面的知识。  HTTP是一个属于应用层的面向对象的协议,适用于分布式超媒体信息系统。它于

xiaoaide01的专栏 676

Http报头Accept与Content-Type的区别(通用报头|请求报头|实体报头) 海康isapi接口POSTMAN测试 b_json

1.Accept属于请求头, Content-Type属于实体头。 Http报头分为通用报头,请求报头,响应报头和实体报头。 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报头结构:通用报头|响应报头|实体报头 2.Accept代表发送端(客户端)希望接受的数据类型。 比如:Accept:text/xml; 代表客户端希望接受的数据类型是xml类型 Content-Type代表发送端(客户端|服务器)发送的实体数据的数据类型。 比如:Content-Type:tex

Dontla的博客 2559

那些HTTP头会被增加HTTP_前缀

       上一篇博客:ASP.net 获得客户端的IP相关知识 中我提到了,如果你想编码更改 HTTP_VIA、HTTP_X_FORWARDED_FOR 的值,你需要客户端增加的HTTP Head为:VIA、X_FORWARDED_FOR。即,少个 "HTTP_" 前缀。那么,到底读取这些值时,那些HTTP头增加时候需要增加HTTP_前缀,那些又不需要呢?         简单来说,出了一些系

蝈蝈俊.net 3344

易语言WEB开发教程8 模块化开发-HTTP处理类扩展

可以将一个函数 扩展到支持库类部的HTTP处理类中 .版本 2 .支持库 webcgi .子程序 LibInit, , 公开 .参数 功能指针 .参数 运行模式 .局部变量 类别, 整数型 注册易库 (功能指针, 运行模式, “HttpMgr.dll”, “2019”, 真) 类别 = 3 置类别名 (类别, “HTTP处理”, 1, ) 置库命令 (0, &输出我的祖国, “输出...

jqw21439477的专栏 912
上一篇: SQLite可视化管理工具汇总
下一篇: sqlite迁移mysql
UU_Yang
博客等级 码龄23年 926粉丝 213原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值