网络编程随笔

来源:互联网 发布:sql 找不到指定的路径 编辑:程序博客网 时间:2024/06/07 14:07

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