我试图在脚本中同时启动许多HTTP请求。我正在使用ocurl库(它是libcurl的一个薄包装器)并尝试从curl多句柄中读取信息。
以下使用简单curl句柄的示例效果很好,并将响应转储到stdout
'My Sub''''''''''''''''''''''''''
Private Sub mySub()
structCalculateDateValues 'calculates a number of dates that I want to be unlocked on my form
fnCreateTable 'create a table will all dates form my database
End Sub
'Event handler for continous form'''''''''''''''
Private Sub Form_Current()
'Some code to get the value of my Struct - structCalculateDateValues
'Lock records that do not fall within of the date parameters of the values in structCalculateDateValues
End Sub
我尝试使用一个简单的多重执行句柄来做同样的事情,该句柄只包含一个请求以更好地理解API。我尝试使用module C = Curl ;;
let get_handle () =
let () = C.global_init C.CURLINIT_GLOBALALL in
let handle = new C.handle in
let () = begin
handle#set_url "google.com";
handle#set_followlocation true;
end in
handle ;;
let main () =
let obj = get_handle () in
obj#perform ;;
main () ;;
方法(这是CURLOPT_WRITEFUNCTION的一个瘦包装器)将单个请求的输出写入包含字符串引用的模块范围变量。我使用的闭包将字符串赋值给set_writefunction
,然后返回写入的字节数。我希望看到我在消息中获取的整个文档,它的尾随片段(如果curl内部使用内容块多次调用我的回调),或者是一个空字符串(如果curl使用空字符串来标记结尾)内容和我的回调应该处理该情况)。相反,它打印message
,表明从未调用过回调。为什么我的回调没有被调用?
generic initial value