2011-06-10 49 views
0

我試圖讓wget使用post-request和一個特殊的密碼。它包含'它是這樣的:在Shellscript中使用'(wget)

wget --save-cookie cookie.txt --post-data「user = Abraham & password = - my'precious!」 http://localhost/login.php

但是當我用wget使用tick時,會出現奇怪的錯誤。有人知道如何讓它起作用嗎?

+0

你需要urlencode那些數據,還是wget會爲你做這件事? – 2011-06-10 17:43:43

回答

2

您的請求中的反響是一個直截了當的問題,雖然您可能有第二個潛伏在那裏。

您正在尋找的單詞是'逃避' - 反引號在命令行上有特殊意義,您需要將其轉義以便它不被解釋爲這樣。在bash shell(典型的linux控制檯)中,轉義字符是\ - 如果你把它放在反引號之前,它將不會被解釋。

第二個潛在問題是您使用的方式wget - 您確定這是您要發送的請求嗎?您是否嘗試使用Web表單或Basic,Digest或其他形式的HTTP身份驗證來驗證服務器?

如果這是您應該進行身份驗證的方式,那麼您還需要對--post-data進行百分比編碼,因爲wget不會爲您執行此操作。

+0

這是一個簡單的PHP腳本,用於等待簡單HTML表單發送的POST請求。它將sessionn信息存儲在cookie中。當我嘗試使用wget --post-data「user = data&pwd = my \'precious」時遇到了問題。 Shellscript用冒泡關於未關閉的文件退出。 – schlingel 2011-06-10 18:00:30

+0

正如我(和上面的評論)指出的那樣,如果你需要把它放到'--post-data'中,那麼你需要對它進行百分比編碼http://en.wikipedia.org/wiki/Percent-encoding反引號'字符應該由'%60'替換 – benosteen 2011-06-10 18:12:43