mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2024-11-23 03:10:04 +08:00
修复content-length为0时不触发onResponseCompleted的bug
This commit is contained in:
parent
61fbb635c1
commit
e99effc1d0
@ -139,15 +139,28 @@ int64_t HttpClient::onRecvHeader(const char *data, uint64_t len) {
|
|||||||
_parser.Parse(data);
|
_parser.Parse(data);
|
||||||
onResponseHeader(_parser.Url(), _parser.getValues());
|
onResponseHeader(_parser.Url(), _parser.getValues());
|
||||||
|
|
||||||
if (_parser["Content-Length"].empty() && !_parser.Content().empty()) {
|
if(_parser["Content-Length"].empty()){
|
||||||
|
//没有Content-Length字段
|
||||||
|
if(!_parser.Content().empty()){
|
||||||
//如果http回复未声明Content-Length字段,但是却有content内容,那说明可能是个不限长度的content
|
//如果http回复未声明Content-Length字段,但是却有content内容,那说明可能是个不限长度的content
|
||||||
_totalBodySize = INT64_MAX;
|
_totalBodySize = INT64_MAX;
|
||||||
_recvedBodySize = 0;
|
_recvedBodySize = 0;
|
||||||
//返回-1代表不限制content回复大小
|
//返回-1代表不限制content回复大小
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
_totalBodySize = atoll(_parser["Content-Length"].data());
|
//content长度为0,本次http请求结束
|
||||||
|
onResponseCompleted_l();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
_recvedBodySize = 0;
|
_recvedBodySize = 0;
|
||||||
|
_totalBodySize = atoll(_parser["Content-Length"].data());
|
||||||
|
|
||||||
|
if(_totalBodySize == 0){
|
||||||
|
//content长度为0,本次http请求结束
|
||||||
|
onResponseCompleted_l();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
//虽然我们知道content的确切大小,
|
//虽然我们知道content的确切大小,
|
||||||
//但是由于我们没必要等content接收完毕才回调onRecvContent(因为这样浪费内存并且要多次拷贝数据)
|
//但是由于我们没必要等content接收完毕才回调onRecvContent(因为这样浪费内存并且要多次拷贝数据)
|
||||||
|
Loading…
Reference in New Issue
Block a user