WM平台WinnetAPI连接服务器后断开APN再次连接APN重连服务器失败的问题。

fromair 2010-08-12 10:13:14
具体现象和步骤是这样的,程序启动第一次使用WinnetAPI:
1.连接APN...
2.创建internent连接服务器:
InetOpen = InternetOpen(...., INTERNET_FLAG_ASYNC|INTERNET_FLAG_RELOAD);
InternetSetStatusCallback
InternetConnect
...
3.请求数据HttpSendRequest
经过上述步骤后客户端可以正常请求并接收到数据,客户端接收的事件包括:
INTERNET_STATUS_RESOLVING_NAME
INTERNET_STATUS_NAME_RESOLVED
INTERNET_STATUS_CONNECTING_TO_SERVER
INTERNET_STATUS_CONNECTED_TO_SERVER
INTERNET_STATUS_SENDING_REQUEST
INTERNET_STATUS_REQUEST_SENT
INTERNET_STATUS_RECEIVING_RESPONSE
INTERNET_STATUS_RESPONSE_RECEIVED
....

而如果此时断开APN(无论是程序还是用户自己断开),无论是否关闭internet,重复上述步骤1,2,3则出问题,第一次请求无法接收到服务器的响应,客户端接收到的事件为:
INTERNET_STATUS_SENDING_REQUEST
INTERNET_STATUS_REQUEST_SENT
INTERNET_STATUS_RECEIVING_RESPONSE
没有收到INTERNET_STATUS_CONNECTING_TO_SERVER, INTERNET_STATUS_CONNECTED_TO_SERVER, INTERNET_STATUS_RESPONSE_RECEIVED等事件,客户端等待一直到超时,查看服务器日志无任何请求。
如果再次重新请求则一切正常,后续请求都正常了。

经测试WM自带的IE也有这个问题:打开IE输入网址连接APN,打开网页一切正常。再断开APN刷新当前网址重新连接APN,但无法打开当前网址一直到超时,再次刷新之后一切正常。如果断开APN后重连APN时间较长则没有这个问题。
而UCWEB等软件测试无此问题。

请求高人指点,该问题是否有好的解决办法。
...全文
196 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fromair 2010-08-16
  • 打赏
  • 举报
回复
几天不来都沉了,自己顶!!
希望高手能看到。
fromair 2010-08-16
  • 打赏
  • 举报
回复
作了相关操作。应该不是这个原因。
如果APN断开,会连接APN,而且APN连接一切正常。主要用到如下API:
if (S_OK == ConnMgrEstablishConnectionSync(...))
{
if ( S_OK != ConnMgrSetConnectionPriority(hHandle, CONNMGR_PRIORITY_USERINTERACTIVE) )
{
.....
}

DWORD dwStatus = CONNMGR_STATUS_UNKNOWN;
if ( S_OK != ConnMgrConnectionStatus( hHandle, &dwStatus ) )
{
....
}
else if ( CONNMGR_STATUS_CONNECTED != dwStatus )
{
....
}
}

郁闷~_~!
lxpspring 2010-08-16
  • 打赏
  • 举报
回复
你在做这些操作之前有没有做connectmanager相关的操作??
如果没有,那应该是这个原因。

7,657

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧