首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用libCurl登录

使用libCurl登录
EN

Stack Overflow用户
提问于 2013-02-07 16:28:22
回答 1查看 303关注 0票数 0

我试着用LibCurl登录。实际上,我使用的是Lua中libCurl的绑定LuaCurl。我指的是这个网页:http://www.hackthissite.org/articles/read/1078

我试过这个:

代码语言:javascript
复制
> require("libcurl")
> c=curl.new()
> c:setopt(curl.OPT_USERAGENT,"Mozilla/4.0")
> c:setopt(curl.OPT_AUTOREFERER,true)
> c:setopt(curl.OPT_FOLLOWLOCATION,true)
> c:setopt(curl.OPT_COOKIEFILE,"")
> c:setopt(curl.OPT_URL,"https://www.chase.com")
> res=c:perform()

但在最后一次操作之后,程序就好像在等待什么一样。我在这里做错了什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-02-08 05:28:16

我试过你的程序,它似乎工作得很好。我得到的是泵入stdout的给定站点的内容。看起来你只是遇到了网络问题...

如果您希望将整个输出捕获为字符串并在以后进行处理,则必须使用OPT_WRITEFUNCTION提供一个回调,该回调将使用您可以保存的更多数据进行调用。下面是我如何在我的简单web挖掘工具箱WDM中实现GET方法的简化版本。

代码语言:javascript
复制
local c = curl.new()
... 
function get(url)
    c:setopt(curl.OPT_URL,url)
    local t = {} -- output will be stored here
    c:setopt(curl.OPT_WRITEFUNCTION, function (a, b)
        local s
        -- luacurl and Lua-cURL friendly way
        if type(a) == "string" then s = a else s = b end
        table.insert(t, s) -- store this piece of data
        return #s
    end)
    assert(c:perform())
    return table.concat(t) -- return the whole content
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14746682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档