网络编程随笔

最近做一个项目,要用到http相关方面的东西,感觉有点坑。坑不坑大家随我来看看。

坑:

try{
       char * l_strUrl = "http://server/manger/Authorize?method=get";
       CInternetSession l_cSess("GetJson");
       CHttpFile *pF = (CHttpFile *) l_cSession.OpenURL((LPCTSTR)l_strUrl );//异常跳走
       DWORD l_dwStatus;
       pF->QueryInfoStatusCode(l_dwStatus);
      //剩下的代码
}
cathc(CInternetException *e)
{
      m_dwErrCode = e->m_dwError;     //12006
     //.........
}

第一感觉代码有问题的又哪位牛人?有,请收下我的膝盖. CInternetExcepttion 12006异常。what fuck。url格式不对?我表示吐血,此url通过postman和 httprequester测试完全没有问题。防火墙?NO,我肯定的告诉你NO,使用了这个接口的另一个程序在我电脑上完全没有问题。我最后都尝试把它—— URL改成https://这种格式。无意中走了接近真相的第一步,

try{
       CSting l_strUrl("http://server/manger/Authorize?method=get");
       CInternetSession l_cSess("GetJson");
       CHttpFile *pF = (CHttpFile *) l_cSession.OpenURL(l_strUrl );
       DWORD l_dwStatus;
       pF->QueryInfoStatusCode(l_dwStatus);
      //剩下的代码
}
cathc(CInternetException *e)
{
      m_dwErrCode = e->m_dwError;     
     //.........
}
貌似不报12006了,可是接下来的错误时12307,我再次fuck了。但是这个告诉我一件事:方向对了。这个代码折腾了3小时,依稀记得半年前写过类似的,不要CString用char*当参数是没有问题的。翻出半年前的代码,还真行。接下来就是那一步出了问题,先花了10分钟排除了头文件的问题,剩下的就是什么——字符集问题了,我当时只能想到这个了。打开工程的属性-》配置属性-》常规-》字符集,还真是,为什么默认的是Uniconde字符集?改完了。参数改会了char*也没有了12006了,也不需要强制类型转换了。可是还是12307,对不是12306是12307。百度谷歌都没有网友碰到过。还好msdn上有错误描述: SSL certificate date that was received from the server is
bad. The certificate is expired.

我发誓,我真的很常见这个鬼问题,但是你要我现在想我还真没有想出来。折腾了2个小时,突然想到:用过谷歌访问百度的时候不就是这个鬼东西吗。突然反应过来,url连接我在第一步调试的时候该成了https://,就是那一步脑残的操作,浪费我一天的时间。12006网络上说 url地址格式不对,缺少http://。折腾半天是字符集。12307 SSL是坏的,我了个去。不想多说了。先让我出坑吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值