解決HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截斷的問題
背景
大華一款攝像頭Onvif協(xié)議響應(yīng)的xml數(shù)據(jù)未攜帶命名空間導(dǎo)致Onvif協(xié)議服務(wù)解析失敗,為了兼容這款攝像頭決定對onvif_client進(jìn)行修改忽略掉命名空間。由于本地沒有出問題的攝像頭,需要啟動HTTP服務(wù)器模擬Onvif協(xié)議,接收Onvif客戶端發(fā)送過來的http請求并響應(yīng)。
問題
對onvif客戶端的某一請求修改了ip和端口成功連接上HTTP服務(wù)器之后,請求成功,但是HTTP服務(wù)響應(yīng)的xml數(shù)據(jù)被截斷了,抓包顯示HTTP服務(wù)器數(shù)據(jù)為發(fā)送完就關(guān)閉了連接。
oatpp搭建Onvif模擬服務(wù):http://www.dbjr.com.cn/article/239533.htm
解決方案
在領(lǐng)導(dǎo)的幫助下找到思路,原因是onvif客戶端發(fā)送的http請求未攜帶keep-alive頭,導(dǎo)致該http連接不是長連接,HTTP服務(wù)端主動關(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)識即可在未攜帶keep-alive
請求頭的情況下保證數(shù)據(jù)發(fā)送完整
到此這篇關(guān)于HTTP服務(wù)響應(yīng)數(shù)據(jù)不完整響應(yīng)數(shù)據(jù)截斷的文章就介紹到這了,更多相關(guān)HTTP響應(yīng)數(shù)據(jù)截斷內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Git?Commitizen提交規(guī)范化自動生成changelog文件
這篇文章主要為大家介紹了Git?Commitizen提交規(guī)范化自動生成changelog文件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09