[2012-08-21] HTTPC 的使用

最近在项目中使用了httpc模块,出现了一个小问题简单的记录一下
 
ints:start() 
ssl:start()
%%http协议
httpc:request(get, {URL, []}, [], [])
 
%%https
httpc:request(get, {URL, []}, [{ssl,[{verify,0}]}], [])
 
返回
{ok,{{"HTTP/1.1",200,"OK"},_Header , Body}}
 
使用疑问,
调用的过程没有问题,正常返回,
但超过一定时间后,总是会报一个错误
 
 
 
 
关于上述错误,经过跟踪,发现在R14B03版本的erlang中,
ssl_manger 中进行session检测的时候
 
 
 
CacheCb 实际上就等于ssl_session_cache.erl 只 export 了一个 delete/2 的方法
 
而在此处只传递了一个Key 参数 没有传对应的Cache 参数,所以报了一个undef 没有定义的错误
 
同时 timer:apply_after 方式新开一个进程来执行 Module:Fun 函数 , 即最终 ets:delete
方法,Cache 即 ssl_otp_session_cache  创建的时候设置了 protected 参数,不能由其他进程来执行delete或者insert操作
 
 
 
 
posted @ 2012-08-21 14:16  哈雷路亚  阅读(528)  评论(1)    收藏  举报