目录LabVIEW部署Web服务1、创建项目2、创建Web服务3、新建WebVI3.1、使用GET方法3.2、使用POST方法4、 部署和对应URL4.1、应用程序80804.2、本地调试80094.3、NI Web服务器9090(禁用)5、测试5.1、测试GET方法5.2、测试POST方法6、实际应用7、浏览器测试8、HTTP测试软件9、笔记LabVIEW部署Web服务1、创建项目2、创建Web服务可以修改名称此处修改为test3、新建WebVI右键Web资源→选择新建VI一个VI对应一个方法3.1、使用GET方法①新建VI后命名为plus前面板添加三个数值控件命名必须是英文如果是中文在测试的时候会报错并且要修改接线端子②右键plus→选择GET(默认为GET)③右键test→选择属性④选择HTTP方法VI设置→选中plus→选择输出类型→选择接线端和输出格式选择JSON这个也是方法默认的设置3.2、使用POST方法①新建VI后命名为plus post并修改程序框图②右键plus post→选择POST③选择HTTP方法VI设置→选中plus→选择输出类型→选择数据流4、 部署和对应URL①右键test→选择应用程序Web服务器→选择开始(调试服务器)”→等待开始完成②查看对应的URL右键其中一个方法此处是plus→选择显示方法URL…如果方法里面存在中文字符选择显示方法URL后可能会闪退URL页面③里面会存在三种端口要看方法是部署到哪个服务器的应用程序8080本地调试8009NI Web服务器9090由于端口很多所以要注意哪个服务器在启用4.1、应用程序8080右键test→选择应用程序Web服务器→选择发布→等待发布完成4.2、本地调试8009右键test→选择应用程序Web服务器→选择开始(调试服务器)4.3、NI Web服务器9090(禁用)右键test→选择开始但是由于未知原因一直连接不上服务器因此不再使用5、测试5.1、测试GET方法使用本地调试8009①右键我的电脑→选择新建→选择VI→命名为test_get②修改VI如下→执行→返回{“c”:3}5.2、测试POST方法①右键我的电脑→选择新建→选择VI→命名为test_post②修改VI如下→执行→返回“3.000000”6、实际应用程序在完成的情况下需要生成应用程序那么对应的URL里面的端口就不再是第5点的三个端口了具体的端口在程序生成规范中设置。这个时候Web服务器就会部署在应用程序上应用程序打开的时候服务有效如果应用程序关闭则服务会无效①新建VI命名为main→简单一个循环结构用于测试程序框图如下②右键程序生成规范→选择新建→选择应用程序(EXE)③选择Web服务→勾选test→选择应用程序Web服务器→HTTP端口设置为8002(默认也是8002)④选择源文件→选中main→点击箭头把main设置到启动VI中→点击生成⑤执行生成的exe⑥新建一个VI命名为test_main→拷贝test_get和test_post程序框图里面的程序到test_main→只改动端口为8002(这个在第③步设置的)→执行→返回正常说明可以正常调用7、浏览器测试Get方法post方法不能直接在浏览器中测试会返回4048、HTTP测试软件Get方法Post方法9、笔记HTTP/1.1 200 OKConnection: Keep-AliveServer: Embedthis-httpContent-Type: application/json; charsetutf-8Cache-Control: no-cacheDate: 周三, 03 6月 2026 03:28:34 GMTContent-Length: 2Keep-Alive: timeout60, max199服务端返回HTTP/1.1且Connection: Keep-Alive代表服务端支持长连接客户端没主动ConnectionClose结论目前就是长连接如果是根本没开web服务但是客户端调用接口会在head返回而且不会有错误簇HTTP/1.1 404 Not FoundConnection: Keep-AliveServer: Embedthis-httpCache-Control: no-cacheDate: 周三, 03 6月 2026 04:03:08 GMTContent-Length: 190Keep-Alive: timeout60, max199LabVIEW不支持host为localhost的连接LabVIEW的JSON转换LabVIEW的JSON转换为LabVIEW簇对象JSON里面必须包含LabVIEW簇对象的所有元素可以多不能少异常JSON会报LabVIEW: (Hex 0xFFFA4722) The cluster element was not found in the JSON string.{messageType:S,message:閰嶆柟鏌ヨ鎴愬姛,data:{ProcessList:[],PartList:[],StepList:[{StepNo:1,StepName:OCV,StepDesc:null,FilePath:null,StartPageNo:null,EndPageNo:null,Operation:SCAN_ARRAY,StepGroup:null,ProcessList:[],PartList:[]}]},jsonRet:null}正常JSON包含Tag{messageType:S,message:閰嶆柟鏌ヨ鎴愬姛,data:{ProcessList:[],PartList:[],StepList:[{StepNo:1,StepName:OCV,StepDesc:null,FilePath:null,StartPageNo:null,EndPageNo:null,Operation:SCAN_ARRAY,StepGroup:null,ProcessList:[],PartList:[],Tag:}]},jsonRet:null}关键簇里面包含Tag不包含jsonRet即便JSON字符串包含也不会报错JSON返回如果存在null必须在这里设置为Ture否则会报错LabVIEW: (Hex 0xFFFA4723) Type mismatch between JSON and LabVIEW.不完整的JSON会返回这个错误LabVIEW: (Hex 0xFFFA4725) The JSON string is invalid. JSON strings must be encoded in UTF-8 and must conform to the JSON grammar.
LabVIEW部署Web服务
目录LabVIEW部署Web服务1、创建项目2、创建Web服务3、新建WebVI3.1、使用GET方法3.2、使用POST方法4、 部署和对应URL4.1、应用程序80804.2、本地调试80094.3、NI Web服务器9090(禁用)5、测试5.1、测试GET方法5.2、测试POST方法6、实际应用7、浏览器测试8、HTTP测试软件9、笔记LabVIEW部署Web服务1、创建项目2、创建Web服务可以修改名称此处修改为test3、新建WebVI右键Web资源→选择新建VI一个VI对应一个方法3.1、使用GET方法①新建VI后命名为plus前面板添加三个数值控件命名必须是英文如果是中文在测试的时候会报错并且要修改接线端子②右键plus→选择GET(默认为GET)③右键test→选择属性④选择HTTP方法VI设置→选中plus→选择输出类型→选择接线端和输出格式选择JSON这个也是方法默认的设置3.2、使用POST方法①新建VI后命名为plus post并修改程序框图②右键plus post→选择POST③选择HTTP方法VI设置→选中plus→选择输出类型→选择数据流4、 部署和对应URL①右键test→选择应用程序Web服务器→选择开始(调试服务器)”→等待开始完成②查看对应的URL右键其中一个方法此处是plus→选择显示方法URL…如果方法里面存在中文字符选择显示方法URL后可能会闪退URL页面③里面会存在三种端口要看方法是部署到哪个服务器的应用程序8080本地调试8009NI Web服务器9090由于端口很多所以要注意哪个服务器在启用4.1、应用程序8080右键test→选择应用程序Web服务器→选择发布→等待发布完成4.2、本地调试8009右键test→选择应用程序Web服务器→选择开始(调试服务器)4.3、NI Web服务器9090(禁用)右键test→选择开始但是由于未知原因一直连接不上服务器因此不再使用5、测试5.1、测试GET方法使用本地调试8009①右键我的电脑→选择新建→选择VI→命名为test_get②修改VI如下→执行→返回{“c”:3}5.2、测试POST方法①右键我的电脑→选择新建→选择VI→命名为test_post②修改VI如下→执行→返回“3.000000”6、实际应用程序在完成的情况下需要生成应用程序那么对应的URL里面的端口就不再是第5点的三个端口了具体的端口在程序生成规范中设置。这个时候Web服务器就会部署在应用程序上应用程序打开的时候服务有效如果应用程序关闭则服务会无效①新建VI命名为main→简单一个循环结构用于测试程序框图如下②右键程序生成规范→选择新建→选择应用程序(EXE)③选择Web服务→勾选test→选择应用程序Web服务器→HTTP端口设置为8002(默认也是8002)④选择源文件→选中main→点击箭头把main设置到启动VI中→点击生成⑤执行生成的exe⑥新建一个VI命名为test_main→拷贝test_get和test_post程序框图里面的程序到test_main→只改动端口为8002(这个在第③步设置的)→执行→返回正常说明可以正常调用7、浏览器测试Get方法post方法不能直接在浏览器中测试会返回4048、HTTP测试软件Get方法Post方法9、笔记HTTP/1.1 200 OKConnection: Keep-AliveServer: Embedthis-httpContent-Type: application/json; charsetutf-8Cache-Control: no-cacheDate: 周三, 03 6月 2026 03:28:34 GMTContent-Length: 2Keep-Alive: timeout60, max199服务端返回HTTP/1.1且Connection: Keep-Alive代表服务端支持长连接客户端没主动ConnectionClose结论目前就是长连接如果是根本没开web服务但是客户端调用接口会在head返回而且不会有错误簇HTTP/1.1 404 Not FoundConnection: Keep-AliveServer: Embedthis-httpCache-Control: no-cacheDate: 周三, 03 6月 2026 04:03:08 GMTContent-Length: 190Keep-Alive: timeout60, max199LabVIEW不支持host为localhost的连接LabVIEW的JSON转换LabVIEW的JSON转换为LabVIEW簇对象JSON里面必须包含LabVIEW簇对象的所有元素可以多不能少异常JSON会报LabVIEW: (Hex 0xFFFA4722) The cluster element was not found in the JSON string.{messageType:S,message:閰嶆柟鏌ヨ鎴愬姛,data:{ProcessList:[],PartList:[],StepList:[{StepNo:1,StepName:OCV,StepDesc:null,FilePath:null,StartPageNo:null,EndPageNo:null,Operation:SCAN_ARRAY,StepGroup:null,ProcessList:[],PartList:[]}]},jsonRet:null}正常JSON包含Tag{messageType:S,message:閰嶆柟鏌ヨ鎴愬姛,data:{ProcessList:[],PartList:[],StepList:[{StepNo:1,StepName:OCV,StepDesc:null,FilePath:null,StartPageNo:null,EndPageNo:null,Operation:SCAN_ARRAY,StepGroup:null,ProcessList:[],PartList:[],Tag:}]},jsonRet:null}关键簇里面包含Tag不包含jsonRet即便JSON字符串包含也不会报错JSON返回如果存在null必须在这里设置为Ture否则会报错LabVIEW: (Hex 0xFFFA4723) Type mismatch between JSON and LabVIEW.不完整的JSON会返回这个错误LabVIEW: (Hex 0xFFFA4725) The JSON string is invalid. JSON strings must be encoded in UTF-8 and must conform to the JSON grammar.