欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

向symbian老手们请问一个有关问题

更新时间: 2014-01-05 02:40:53 责任编辑: Author_N1

 

向Symbian老手们请教一个问题
在模拟器上出现的问题是:在局域网通畅,外网断网的情况下,向外网发送http请求,提交请求后,出现了短暂的死机现象.向局域网发出的http请求都是有响应的,并且没有死机现象。

具体是:
执行(1) iNetEngine->HttpRequestGet(_L("http://a.uuarea.com/v.do?pageID=10885"),0);  向外网发出post请求出现死机。
执行(2) iNetEngine->HttpRequestGet(_L("http://172.16.0.1/"firstConnect_3pingan.html?lid=0&st=1"),0); 想内网发出post请求正常。

出现这个问题的环境是:(3)外网的服务器网线断了,不通,内网通。

之所以提出这个问题是因为在手机上面测试发现,执行(1)时小概率出现几秒钟的死机现象,此时定时器无法刷屏幕滚动文字、也不能响应按键,过几秒钟就好了。但是在模拟器里面不会出现这种现象,除非出现了现象(3)。

语句(1)是为了得到手机号码。connection是连接上了的。现象出现在 iTransaction.SubmitL(  ); 后。

请老手高手们给些参考意见,不胜感激。

------最佳解决方案--------------------
symbian初学者。。。友情帮顶。
------其他解决方案--------------------
你的提交操作是怎么执行的?在定时器中执行http队列,进行提交会有改善。另外可以把提交操作移至独立线程里。

------其他解决方案--------------------
我的是在http请求前的连接GPRS时会有几秒钟假死机情况,这个是必现的,第一次连接完成后就再没出现过,这是真机的。

模拟器经常出现假死机现象。
------其他解决方案--------------------
 aGetDataLength > 0 )
    {
        TBuf8 < 64 > rangeBuf;
        rangeBuf.Append( _L8( "bytes=" ) );
        rangeBuf.AppendNum( aRang );
        rangeBuf.Append( _L8( "-" ) );
        rangeBuf.AppendNum( aRang + aGetDataLength - 1 );
        SetHeaderL( hdr, HTTP::ERange, rangeBuf );
    }

    //DumpHeadersL(hdr);


    // Submit the transaction. After this the framework will give transaction
    // events via MHFRunL and MHFRunError.
    //iFramework->SetUpdateRate( CSYMFramework::EUpdateLow );
    iTransaction.SubmitL(  );
    iRunning = ETrue;
}

HttpRequestGet()函数执行完后出现了短暂的死机,然后才到MHFRunL,aEvent.iStatus是负数。
------其他解决方案--------------------
因为http请求非常频繁,暂未使用线程。

RConnection类的实例对象不能够进行跨线程调用

理论上讲,RHTTPTransaction是异步操作,系统会起线程啊。为什么还会阻塞UI呢?
------其他解决方案--------------------
该问题出现的概率较小,一般在地铁或者不经意的时候“非常偶尔”地出现。公司产品部门要求比须解决。
------其他解决方案--------------------
引用:
你的提交操作是怎么执行的?在定时器中执行http队列,进行提交会有改善。另外可以把提交操作移至独立线程里。



void NetworkEngine::HttpRequestGet( const TDesC8 & aUri, TInt aRang, TInt aGetDataLength )
{
    CancelHttpRequest();
    TUriParser8 uri;
    uri.Parse( aUri );
    iLastUrl.AssginData( aUri );
    //if ( !iIsConnected )
    {
        if ( !iIapEngine->SetupConnectionL( iSession ) )
        {
            if ( iMHttpObserver )
            {
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:40:53
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13085/
本文WWW.DOC100.NET DOC100.NET版权所有。