解決HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截?cái)嗟膯?wèn)題
背景
大華一款攝像頭Onvif協(xié)議響應(yīng)的xml數(shù)據(jù)未攜帶命名空間導(dǎo)致Onvif協(xié)議服務(wù)解析失敗,為了兼容這款攝像頭決定對(duì)onvif_client進(jìn)行修改忽略掉命名空間。由于本地沒(méi)有出問(wèn)題的攝像頭,需要啟動(dòng)HTTP服務(wù)器模擬Onvif協(xié)議,接收Onvif客戶端發(fā)送過(guò)來(lái)的http請(qǐng)求并響應(yīng)。
問(wèn)題
對(duì)onvif客戶端的某一請(qǐng)求修改了ip和端口成功連接上HTTP服務(wù)器之后,請(qǐng)求成功,但是HTTP服務(wù)響應(yīng)的xml數(shù)據(jù)被截?cái)嗔?,抓包顯示HTTP服務(wù)器數(shù)據(jù)為發(fā)送完就關(guān)閉了連接。
oatpp搭建Onvif模擬服務(wù):http://chabaoo.cn/article/239533.htm
解決方案
在領(lǐng)導(dǎo)的幫助下找到思路,原因是onvif客戶端發(fā)送的http請(qǐng)求未攜帶keep-alive頭,導(dǎo)致該http連接不是長(zhǎng)連接,HTTP服務(wù)端主動(dòng)關(guān)閉。 查看HTTP服務(wù)器源碼,查找keep-alive
grep -rn "keep-alive" ./
找到關(guān)鍵信息
If the connection header is present in the request and its value isn't keep-alive, then close
查看源碼
找到關(guān)鍵代碼,注釋掉close標(biāo)識(shí)即可在未攜帶keep-alive
請(qǐng)求頭的情況下保證數(shù)據(jù)發(fā)送完整
到此這篇關(guān)于HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截?cái)嗟奈恼戮徒榻B到這了,更多相關(guān)HTTP響應(yīng)數(shù)據(jù)截?cái)鄡?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件
這篇文章主要為大家介紹了Git?Commitizen提交規(guī)范化自動(dòng)生成changelog文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09