From b3d4188fde6b4e678799df15404e1395f19977d9 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 28 Apr 2023 01:33:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E7=AB=AF=E8=BF=94=E5=9B=9Econtent-length=3D0=E6=97=B6,TsPlayer?= =?UTF-8?q?=E4=B8=8D=E8=83=BD=E6=AD=A3=E7=A1=AE=E9=87=8A=E6=94=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Http/HttpClient.cpp | 6 +++--- src/Http/TsPlayer.cpp | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/Http/HttpClient.cpp b/src/Http/HttpClient.cpp index 0e50fe0c..32742200 100644 --- a/src/Http/HttpClient.cpp +++ b/src/Http/HttpClient.cpp @@ -226,7 +226,7 @@ ssize_t HttpClient::onRecvHeader(const char *data, size_t len) { if (_total_body_size == 0) { //后续没content,本次http请求结束 - onResponseCompleted_l(SockException(Err_success, "success")); + onResponseCompleted_l(SockException(Err_success, "The request is successful but has no body")); return 0; } @@ -260,7 +260,7 @@ void HttpClient::onRecvContent(const char *data, size_t len) { if (_recved_body_size == (size_t)_total_body_size) { //content接收完毕 onResponseBody(data, len); - onResponseCompleted_l(SockException(Err_success, "success")); + onResponseCompleted_l(SockException(Err_success, "completed")); return; } @@ -329,7 +329,7 @@ void HttpClient::onResponseCompleted_l(const SockException &ex) { if (_total_body_size > 0 && _recved_body_size >= (size_t)_total_body_size) { //回复header中有content-length信息,那么收到的body大于等于声明值则认为成功 - onResponseCompleted(SockException(Err_success, "success")); + onResponseCompleted(SockException(Err_success, "read body completed")); return; } diff --git a/src/Http/TsPlayer.cpp b/src/Http/TsPlayer.cpp index 70383899..20737bc5 100644 --- a/src/Http/TsPlayer.cpp +++ b/src/Http/TsPlayer.cpp @@ -34,7 +34,12 @@ void TsPlayer::teardown() { void TsPlayer::onResponseCompleted(const SockException &ex) { if (!_play_result) { _play_result = true; - onPlayResult(ex); + if (!ex && responseBodyTotalSize() == 0 && responseBodySize() == 0) { + //if the server does not return any data, it is considered a failure + onShutdown(ex); + } else { + onPlayResult(ex); + } } else { onShutdown(ex); } @@ -44,7 +49,7 @@ void TsPlayer::onResponseCompleted(const SockException &ex) { void TsPlayer::onResponseBody(const char *buf, size_t size) { if (!_play_result) { _play_result = true; - onPlayResult(SockException(Err_success, "play http-ts success")); + onPlayResult(SockException(Err_success, "read http-ts stream successfully")); } if (!_benchmark_mode) { HttpTSPlayer::onResponseBody(buf, size);