关闭

网络编程随笔

标签: 网络编程随笔
142人阅读 评论(0) 收藏 举报
分类:

最近做一个项目,要用到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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:25381次
    • 积分:450
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:3篇
    • 译文:1篇
    • 评论:8条
    文章分类
    最新评论