2011-05-10 149 views
0

我想使用cURL来通过一个登录页面,但在这个过程中,它会在本地路径后面调用场景(即它想要在/Private/....asp而不是example.com/Private/....asp中获得某个文件),但当然这些本地路径不存在于我的服务器上。这是cURL的限制还是有办法让我解决这个问题?cURL本地路径

回答

1

它弹跳到另一个位置吗?

尝试-L开关:

http://curl.haxx.se/docs/manpage.html#-L

编辑:

在第一页上的按钮点击[1]是一个POST到[2]。
所以我认为你想要做的就是使用curl来做这个POST(使用-c保存cookie)。通常只是将浏览器重定向到[3],但我认为您想要一路保存Cookie,因此首先将POST发送到[2],然后使用GET [3],再次使用-c保存Cookie,但也使用-b cookie文件,与您在发布到[2]时创建的一样。

当您获取[3]时,您会注意到结果是使用javascript自动提交带有某些认证值的表单的页面。你将不得不提取这些值,将它们放在一个文件中,然后将它们作为-d(或--data-urlencode)POST数据使用到[4]。解析出这些值可能是不平凡的,这取决于你对例如perl的。但是,尽管如此,您可以将这些值发布到[4]并使用与以前相同的cookie,并且应该将您登录到登录页面[5]。

让我知道这是如何工作的。

[1] https://acadinfo.wustl.edu/
[2] https://acadinfo.wustl.edu/redirectToWSPrivate.asp
[3] https://acadinfo.wustl.edu/Private/WebSTAC.asp
[4] https://login.wustl.edu/idp/profile/SAML2/POST/SSO
[4α] https://login.wustl.edu/idp/Authn/UserPassword
[5] https://connect.wustl.edu/login/wulogin.aspx

另注: 所以看起来甚至在你发布到[4]之后,你的浏览器通常会被发送到[4a],然后再发送另一个javascript redirec t到[5]。因此,在发布到[4]之后,您将不得不通过调用curl和您一直使用的相同cookie文件手动GET [5]。

+0

我正在使用以下位置选项。欲了解更多信息,该页面是https://webstac.wustl.edu,我只是想通过cURL登录按钮,到您输入用户名和密码的地方。 – codersarepeople 2011-05-10 10:30:43

+0

所以这里有一堆javascript重定向。你做到这一点至关重要(从https://webstac.wustl.edu/到https://connect.wustl.edu/login/wulogin.aspx用一次调用来卷曲?我不确定它是否是如果你愿意发出几个顺序呼叫来卷曲,我可以给你一些猜测,我知道了 – Dave 2011-05-10 15:56:55

+0

如果我使用多个cURL呼叫,那也可以工作,这只是一个通过该页面的问题 – codersarepeople 2011-05-10 16:03:00