2011-05-10 148 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