WEB开发网
开发学院手机开发Symbian 开发 Symbian http 编程总结 阅读

Symbian http 编程总结

 2010-03-18 21:00:00 来源:WEB开发网   
核心提示:WAP能够运行于各种无线网络之上,如GSM、GPRS、CDMA1X等,Symbian http 编程总结(2),即将开通的3G移动通信网络同样也支持WAP,打个比喻,WAP应用采用的实现方式是“终端+WAP网关+WAP服务器”的模式4) symbian开发中遇到的问题:首先是symbian的字符串问题:HBufC8*

WAP能够运行于各种无线网络之上,如GSM、GPRS、CDMA1X等,即将开通的3G移动通信网络同样也支持WAP。打个比喻,GPRS和GSM都是马路,而WAP是在马路上的汽车,汽车上运输的货物,就是WAP上的网站内容了。

WAP只是一种GPRS应用模式,它与GRPS的接入方式是无关的。WAP应用采用的实现方式是“终端+WAP网关+WAP服务器”的模式

4) symbian开发中遇到的问题:

首先是symbian的字符串问题:

HBufC8* heapBuf = HBufC8::NewLC(fileLength);

TPtr8 postData8 = heapBuf->Des();

file.Read(postData8);

注意: 此处是关键,费了一个礼拜,不能把文件直接生成入HBufC8,如HBufC8::NewLC(fileStream, fileLength)也没法得到,因为HBufC是不可以修改的, 用 Des() 返回一个可修改的指针TPtr8,然后读入文件file.Read(TPtr8),symbian没有提供可供修改的堆描述符HBuf.

其次是代理设置问题.

http在symbian真机上走的是CMWAP,需要设置http代理,代理IP地址是:10.0.0.172,端口是:80

在设置好代理后,发送URL连接,下面是get请求的程序代码:

TUriParser8 uri;

uri.Parse(aUri);

TBuf8<20> aProxy8(_L8("10.0.0.172:80"));

RStringF iPrxAddr = iSession.StringPool().OpenFStringL(aProxy8);

CleanupClosePushL(iPrxAddr);

THTTPHdrVal iPrxUsage(iSession.StringPool().StringF(HTTP::EUseProxy,RHTTPSession::GetTable()));

iSession.ConnectionInfo().SetPropertyL(iSession.StringPool().StringF(HTTP::EProxyUsage,RHTTPSession::GetTable()), iPrxUsage);

iSession.ConnectionInfo().SetPropertyL(iSession.StringPool().StringF(HTTP::EProxyAddress,RHTTPSession::GetTable()), iPrxAddr);

CleanupStack:: PopAndDestroy();

RStringF method = iSession.StringPool().StringF(HTTP::EGET,

RHTTPSession::GetTable());

iTransaction = iSession.OpenTransactionL(uri, *this, method);

RHTTPHeaders hdr = iTransaction.Request().GetHeaderCollection();

//原来的错误做法

// _LIT8(KHost, "10.0.0.172:80");

// SetHeaderL(hdr, HTTP::EHost, KHost);

Tags:Symbian http 编程

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