libcurl 调用H3C CAS 3.0(E0306)Rest API接口,部分正确,部分出错,出错的接口都是返回内部错误,错误码为11,这个就让我很疑惑了。如果是我的libcurl的设置有问题,应该都会失败吧,但是现在一部分接口能调用成功,一部分不能。我的程序在旧版本CAS上很稳定,新版本就是各种问题。libcurl和CAS通信应该是没得问题了,都把后台返回的json是获取到了的,只是后台莫名其妙报了个内部异常了。虽然这个问题我问了几次了。
(0)
最佳答案
你好,经过开发层面确认,CAS的E0306版本,因为安全漏洞的原因(session劫持),产品层面已经禁止了这种访问 。暂时可以通过每次请求都带上用户名和密码。操作下来有疑问吗?
(0)
带上用户名和密码具体是怎么操作呢?
不知道你熟悉libcurl不?你的意思是这个吧? curl_easy_setopt(curl, CURLOPT_URL, "***.***/foo.bin"); curl_easy_setopt(curl, CURLOPT_USERNAME, "clark"); curl_easy_setopt(curl, CURLOPT_PASSWORD, "qwerty");
研发具体情况看了下,返回错误码11是由于空指针造成的;具体原因是请求的user-agent为null(这个在代码上算是一个小缺陷); 但本地使用curl命令试了一下user-agent值为“curl/7.22.0 (x86 64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.11 libidn/1.23 librtmp/2.3”,不会为空; 所以请客户确认一下curl命令发送的消息头是否有user-agent; 或者让用户提供一下他们报错情况下curl命令消息; 其次确认一下用户的COOKIE是通过curl命令获取的还是其他形式获取到的; 请邮件发送到mengru_li@h3c.com
谢谢,我确实没设置user-agent,我以为写爬虫的时候才需要,这是我去测试一下。COOKIEs我是通过设置的额COOKIEs文件来保存和加载的。
跟研发确认过,报错代码11是内部错误,具体的需要看日志分析的。
(0)
研发具体情况看了下,返回错误码11是由于空指针造成的;具体原因是请求的user-agent为null(这个在代码上算是一个小缺陷); 但本地使用curl命令试了一下user-agent值为“curl/7.22.0 (x86 64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.11 libidn/1.23 librtmp/2.3”,不会为空; 所以请客户确认一下curl命令发送的消息头是否有user-agent; 或者让用户提供一下他们报错情况下curl命令消息; 其次确认一下用户的COOKIE是通过curl命令获取的还是其他形式获取到的; 请邮件发送到mengru_li@h3c.com
日志就是报的什么空指针异常了。
研发具体情况看了下,返回错误码11是由于空指针造成的;具体原因是请求的user-agent为null(这个在代码上算是一个小缺陷); 但本地使用curl命令试了一下user-agent值为“curl/7.22.0 (x86 64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.11 libidn/1.23 librtmp/2.3”,不会为空; 所以请客户确认一下curl命令发送的消息头是否有user-agent; 或者让用户提供一下他们报错情况下curl命令消息; 其次确认一下用户的COOKIE是通过curl命令获取的还是其他形式获取到的; 请邮件发送到mengru_li@h3c.com
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
谢谢,我确实没设置user-agent,我以为写爬虫的时候才需要,这是我去测试一下。COOKIEs我是通过设置的额COOKIEs文件来保存和加载的。