我正在尋找使用PowerShell的網頁的HTTP請求,這是可能的,如果是這樣,我怎麼可以實現這一目標?http請求與powershell
我可以向https頁面發出請求嗎?我能夠使用bat文件而不是https發出http請求,希望能夠使用powershell來https頁面請求。
我正在尋找使用PowerShell的網頁的HTTP請求,這是可能的,如果是這樣,我怎麼可以實現這一目標?http請求與powershell
我可以向https頁面發出請求嗎?我能夠使用bat文件而不是https發出http請求,希望能夠使用powershell來https頁面請求。
您可以使用.NET框架提供的通常的WebRequest
和HttpWebRequest
類。
$request = [System.Net.WebRequest]::Create('http://example.com')
# do something with $request
這是使用相同的類和API從C#,除了語法差異PowerShell的沒有什麼不同。
PowerShell v3還帶來了Invoke-WebRequest
和其他一些。
是否可以向https頁面發送請求? – amateur
是的,請參閱http://stackoverflow.com/questions/560804/how-do-i-use-webrequest-to-access-an-ssl-encrypted-site-using-https –
只是爲了防止任何人需要發送POST請求,因爲那是我需要的下一件事: $ request = [System.Net.WebRequest] :: Create('mypageurl'); $ request.Method =「POST」; $請求。ContentType =「application/x-www-form-urlencoded」; $ bytes = [System.Text.Encoding] :: ASCII.GetBytes(「name = john&number = 5」); $ request.ContentLength = $ bytes.Length; $ requestStream = $ request.GetRequestStream(); $ requestStream.Write($ bytes,0,$ bytes.Length); $ requestStream.Close(); $ request.GetResponse(); –
取決於你在做什麼,你也可以使用System.Net.WebClient
,這是HttpWebRequest
$client = new-object system.net.webclient
看的簡化抽象這裏的區別:What difference is there between WebClient and HTTPWebRequest classes in .NET?
PS:使用PowerShell 3.0,你有Invoke-WebRequest
和Invoke-RestMethod
cmdlet可用於類似目的
試試這個:
(New-Object System.Net.WebClient).DownloadString("http://stackoverflow.com")
WebClient.DownloadString Method (String)
或使用PowerShell 3.0,
(Invoke-WebRequest http://stackoverflow.com).content
短而甜,並且使用附加到地址的查詢字符串。 –
如果一切都失敗了,用捲曲的http://curl.haxx.se。您可以設置所有內容,包括證書處理,POST等。不是微妙的,但它可以工作並處理所有奇怪的案例;例如您可以將--insecure標誌設置爲忽略證書名稱問題,到期日期或測試狀態。
您可以使用Invoke-WebRequest cmdlet創建HTTP,HTTPS,FTP和FILE請求。這很容易,並提供了許多選項來玩。 例子:爲了讓簡單的HTTP/HTTPS請求google.com
Invoke-WebRequest -Uri "http://google.com"
更多業績可以發現MSDN
您是否要求由知名證書頒發機構簽署的站點,證書內容?瀏覽器和大多數HTTP協議棧都不願意使用不正確,過期或自簽名(測試)證書從HTTPS站點檢索內容。不過,您通常可以設置策略來忽略證書問題或導入有問題的證書。 – NerdDad