# 【web】【windows】【PowerShell】 iwr

`iwr` 是 Windows PowerShell 中的一個 cmdlet，用於發送 HTTP、HTTPS 或 FTP 請求，並檢索相應的響應。`iwr` 的全稱是 "Invoke-WebRequest"。這個 cmdlet 提供了一個簡潔的方式，讓使用者能夠與網頁或 Web 服務進行互動，進行數據擷取和其他 HTTP 操作。

以下是 `iwr` 的主要特點和使用示例：

#### 主要特點：

- 1. \*\*HTTP、HTTPS、FTP 支持：\*\* `iwr` 支持使用 HTTP、HTTPS 或 FTP 協議發送請求。
- 2. \*\*GET 和 POST 請求：\*\* 可以發送 GET 或 POST 請求，允許向服務器請求資源或提交數據。
- 3. \*\*內建認證支援：\*\* 支持使用 `-Credential` 參數提供的認證信息，用於訪問需要身份驗證的資源。
- 4. \*\*自定義標頭：\*\* 可以使用 `-Headers` 參數添加自定義的 HTTP 標頭。
- 5. \*\*檔案上傳和下載：\*\* 可以使用 `-InFile` 和 `-OutFile` 參數進行檔案的上傳和下載。
- 6. \*\*代理支持：\*\* 可以使用 `-Proxy` 參數指定代理伺服器。

#### 使用範例：

```Powershell
#1. **基本 GET 請求：** 發送一個基本的 GET 請求並檢索 https://www.example.com 的內容。
iwr https://www.example.com

#2. **POST 請求：** 發送一個 POST 請求，提交表單數據到 https://api.example.com。
iwr -Uri https://api.example.com -Method Post -Body "data=123" -ContentType "application/x-www-form-urlencoded"

#3. **帶有標頭的請求：** 添加自定義標頭，這裡演示了如何使用授權標頭。
iwr -Uri https://www.example.com -Headers @{"Authorization"="Bearer YourToken"}

#4. **檔案下載：** 下載文件到指定的本地路徑。
iwr -Uri https://www.example.com/file.zip -OutFile C:\Downloads\file.zip

#5. **檔案上傳：** 將本地文件上傳到遠端服務器。
iwr -Uri https://api.example.com/upload -Method Post -InFile C:\Documents\upload.txt


```

`iwr` 的靈活性使得它成為在 PowerShell 中進行簡單的網絡請求和操作的便捷工具。在使用時，請注意參數的選項和相應的用法。