在開發mpv的插件時,需要發起http請求,但是mpv並沒有提供HTTP的api。
因此我們可以用VBScript或者PowerShell來發起請求。
運行cscript /nologo httpget.vbs “http://example.com”
1 2 3 4 5 6 7 8 9 10 11 12 |
args = WScript.Arguments.Count if args <> 1 then wscript.Quit end if URL = WScript.Arguments.Item(0) Set xmlhttp = CreateObject("Microsoft.XmlHttp") xmlhttp.open "GET", URL, false xmlhttp.setRequestHeader "User-Agent", "cscript/1.0" xmlhttp.send WScript.Echo xmlhttp.responseText |
或者:
1 |
powershell (Invoke-WebRequest -UserAgent Ps/1.0 -URI "http://example.com").content |
這兩種方法均可以將響應輸出到stdout。Windows會將輸出的內容都重新編碼為系統默認代碼頁,比如簡體中文系統中會被編碼為CP936。但是我們有時只想獲得原始的內容,而不是便於顯示在屏幕上的內容(比如下載文件或者不便於進行編碼轉換的時候)。
所以我們可以將響應輸出到文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
args = WScript.Arguments.Count if args <> 1 then wscript.Quit end if URL = WScript.Arguments.Item(0) Set xmlhttp = CreateObject("Microsoft.XmlHttp") xmlhttp.open "GET", URL, false xmlhttp.setRequestHeader "User-Agent", "cscript/1.0" xmlhttp.send Set oStream = CreateObject("ADODB.Stream") With oStream .Type = 1 'adTypeBinary .Open .Write xmlhttp.responseBody 'to save binary data .SaveToFile "out.txt", 2 'adSaveCreateOverWrite End With Set oStream = Nothing Set ret = Nothing |
或者:
1 |
powershell Invoke-WebRequest -UserAgent Ps/1.0 -URI "http://example.com" -Outfile out.txt |
然後我們讀取out.txt就可以獲得響應內容了。