WEB开发网
开发学院手机开发Symbian 开发 Symbian(RSocket DownLoad)模拟HTTP下载 阅读

Symbian(RSocket DownLoad)模拟HTTP下载

 2010-10-20 07:59:57 来源:WEB开发网   
核心提示:if (!GetRespField(recv_buf, tmp_field, tmp_end, tmp_str))return EFalse;status = Str2Int(tmp_str.Left(3));//取长度file_length = 0;tmp_field.Copy(_L8("Content-L

if (!GetRespField(recv_buf, tmp_field, tmp_end, tmp_str))

return EFalse;

status = Str2Int(tmp_str.Left(3));

//取长度

file_length = 0;

tmp_field.Copy(_L8("Content-Length: "));

tmp_end.Copy(KHttpHdrDiv) ;

if (!GetRespField(recv_buf, tmp_field, tmp_end, tmp_str))

return EFalse;

file_length = Str2Int(tmp_str);

//取总长度

tmp_field.Copy(_L8("Content-Range: "));

tmp_end.Copy(KHttpHdrDiv) ;

if (GetRespField(recv_buf, tmp_field, tmp_end, tmp_str))

{//取到

int pos = tmp_str.LocateReverse('/');

if(pos >= 0)

{

int length = tmp_str.Length() - pos - 1;

file_length = Str2Int(tmp_str.Right(length));

}

}

if (status == 302||status == 301)

{

//跳转地址

tmp_field.Copy(_L8("Location: "));

tmp_end.Copy(KHttpHdrDiv) ;

if (!GetRespField(recv_buf, tmp_field, tmp_end, tmp_str))

return EFalse;

if (LocationUrl)

{

delete LocationUrl;

LocationUrl = NULL;

}

LocationUrl = CompleteUrl(tmp_str);

}

// set the jump length

jump_len = 0;

find_pos = recv_buf.Find(KHttpHdrEnd) ;

if (find_pos != KErrNotFound)

{

tmp_str.Copy(KHttpHdrEnd) ;

jump_len = find_pos + tmp_str.Length() ;

}

return ETrue;

}

//整个框架的核心已经介绍完了.

以上代码适合SYMBIAN 2nd,3rd,5th三个平台通用.

上一页  1 2 3 4 5 6 

Tags:Symbian RSocket DownLoad

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接