Commit ca54cb9d by xiongziliang

解决断点续传返回416的问题

parent ae4c7240
...@@ -34,6 +34,11 @@ void HttpDownloader::startDownload(const string& url, const string& filePath,boo ...@@ -34,6 +34,11 @@ void HttpDownloader::startDownload(const string& url, const string& filePath,boo
} }
if(bAppend){ if(bAppend){
auto currentLen = ftell(_saveFile); auto currentLen = ftell(_saveFile);
if(currentLen){
//最少续传一个字节,怕遇到http 416的错误
currentLen -= 1;
fseek(_saveFile,-1,SEEK_CUR);
}
addHeader("Range", StrPrinter << "bytes=" << currentLen << "-" << endl); addHeader("Range", StrPrinter << "bytes=" << currentLen << "-" << endl);
} }
setMethod("GET"); setMethod("GET");
......
...@@ -16,7 +16,7 @@ namespace Http { ...@@ -16,7 +16,7 @@ namespace Http {
class HttpDownloader: public HttpClientImp { class HttpDownloader: public HttpClientImp {
public: public:
typedef std::shared_ptr<HttpDownloader> Ptr; typedef std::shared_ptr<HttpDownloader> Ptr;
typedef std::function<void(int code,const char *errMsg,const char *filePath)> onDownloadResult; typedef std::function<void(ErrCode code,const char *errMsg,const char *filePath)> onDownloadResult;
HttpDownloader(); HttpDownloader();
virtual ~HttpDownloader(); virtual ~HttpDownloader();
//开始下载文件,默认断点续传方式下载 //开始下载文件,默认断点续传方式下载
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论