28、electron 发送http请求,数据接收不完整

electron 发送http请求,参考官网api:

https://www.electronjs.org/zh/docs/latest/api/net#netrequestoptions

https://www.electronjs.org/zh/docs/latest/api/client-request#new-clientrequestoptions

很重要的一点:当接收的数据比较大,数据会多次返回,等数据全部接收完毕时调finish事件,所以判断数据有没有接收完成,需在finish里面处理。

示例代码:

复制代码
let tempReceiveGetFrame = "";

function getFrame(){
            try{
                const request = net.request(api+"getFrame");
                request.on("response",response=>{
                    response.on("data",chunk=>{
                        let result = chunk.toString();
                        tempReceiveGetFrame += result;   //数据大时,这边会多次返回
                        
                    });

                    response.on("end",()=>{

                    });
                });

                request.on("finish",()=>{   //数据返回结束时调用此方法
                    try{
                        //console.log(tempReceiveGetFrame);
                        let data = eval('('+tempReceiveGetFrame+')');
                        if(data.returnCode == 0){
                            //alert('data:image/jpg;base64,' + data.data);
                            document.getElementById("video").src ='data:image/jpg;base64,' + data.data.img;
                        }
                    }
                    catch(e){

                    }
                    tempReceiveGetFrame="";
                })

                request.end();

            }
            catch(e)
            {

            }
        }
复制代码

 

posted @   ziff123  阅读(826)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示