2012-05-18 26 views
0

我需要從AppleScript下載.png文件。問題是我在 的代理服務器後面,所以當我使用時:通過代理使用AppleScript下載文件

1)curl,腳本卡住,從不連接。

set image to "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png" 
set thePath to (path to desktop as Unicode text) & "test.png" 

do shell script "curl -f " & image & " -o " & the POSIX path of thePath 

2)URL訪問腳本,腳本也被卡住

set image to "http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png" 
set thePath to (path to desktop as Unicode text) & "test.png" 

tell application "URL Access Scripting" 
    download image to file thePath replacing yes 
end tell 

我知道有在捲曲指定代理服務器的方式:

do shell script "curl -x " & HTTPProxy & ":" & HTTPPort & "-f " ... 

但我不不知道HTTProxy和HTTPort的值是什麼,因爲我的系統使用自動代理髮現。即使如果有這些值,我的腳本就會在我的代理和其他代理背後的其他系統中工作。

因此,我想知道是否有辦法告訴curl或URL訪問腳本使用系統代理,或者如果有系統變量存儲這些代理值。

在此先感謝

解決

我發現了一種通過設置HTTPPROXY和HTTPORT來做到這一點:

set HTTPProxy to (do shell script "networksetup -getwebproxy \"Ethernet\" | grep \"Server:\" | awk -F \": \" '{print $2}'") 
set HTTPPort to (do shell script "networksetup -getwebproxy \"Ethernet\" | grep \"Port:\" | awk -F \": \" '{print $2}'") 

我不知道是否有一個更合適的方法要做到這一點,但這似乎工作:)

+0

歡迎。如果你找到自己問題的解決方案,那麼接受的程序就是將它作爲答案發布,並接受它(如果沒有其他更好的方法,至少沒有更好的答案)。這不僅完全可以做,它有助於保持網站整潔,因爲您的問題將被歸檔爲「已回答」 - 現在,它被視爲「開放」。 – kopischke

回答

0

我找到了一種方法來設置HTTPProxy和HTTPort:

set HTTPProxy to (do shell script "networksetup -getwebproxy \"Ethernet\" | grep \"Server:\" | awk -F \": \" '{print $2}'") 
set HTTPPort to (do shell script "networksetup -getwebproxy \"Ethernet\" | grep \"Port:\" | awk -F \": \" '{print $2}'") 

我不知道是否有這樣做一個更合適的方法,但是這似乎工作:)到堆棧溢出