diff --git a/src/Http/HttpClient.cpp b/src/Http/HttpClient.cpp index 010ae111..0f010d27 100644 --- a/src/Http/HttpClient.cpp +++ b/src/Http/HttpClient.cpp @@ -141,18 +141,19 @@ int64_t HttpClient::onRecvHeader(const char *data, uint64_t len) { if(_parser["Content-Length"].empty()){ //没有Content-Length字段 - if(!_parser.Content().empty()){ - //如果http回复未声明Content-Length字段,但是却有content内容,那说明可能是个不限长度的content - _totalBodySize = INT64_MAX; - _recvedBodySize = 0; - //返回-1代表不限制content回复大小 - return -1; + if(_parser.Content().empty()){ + //content长度为0,本次http请求结束 + onResponseCompleted_l(); + return 0; } - //content长度为0,本次http请求结束 - onResponseCompleted_l(); - return 0; + //如果http回复未声明Content-Length字段,但是却有content内容,那说明可能是个不限长度的content + _totalBodySize = INT64_MAX; + _recvedBodySize = 0; + //返回-1代表不限制content回复大小 + return -1; } + //有Content-Length字段 _recvedBodySize = 0; _totalBodySize = atoll(_parser["Content-Length"].data());