使用Invoke-WebRequest替代Wget
时间: 2025-06-29 12:18:07 浏览: 11
### 使用 `Invoke-WebRequest` 替代 Wget 进行 HTTP 请求
在 PowerShell 中,`Invoke-WebRequest` 是一个强大的 cmdlet,可以用来发送 HTTP 请求并处理响应。对于版本小于等于 5.1 的 PowerShell,`curl` 和 `wget` 都是指向 `Invoke-WebRequest` 的别名[^2]。
#### 发送 GET 请求
要模拟简单的 GET 请求,可以直接调用 `Invoke-WebRequest` 并指定 URL:
```powershell
$response = Invoke-WebRequest -Uri "https://example.com"
```
这会返回整个网页的内容作为对象,其中包含了状态码、头部信息以及页面主体等内容。
如果只需要获取纯文本形式的结果,则可以通过 `.Content` 属性读取:
```powershell
$pageContent = $response.Content
Write-Output $pageContent
```
#### 添加自定义头信息
有时可能需要设置特定的请求头字段,比如 User-Agent 或者 Authorization Token:
```powershell
$headers = @{
'User-Agent' = 'Mozilla/5.0'
}
$responseWithHeaders = Invoke-WebRequest -Uri "https://api.example.com/data" -Method Get -Headers $headers
```
#### 处理 POST 请求
当涉及到提交数据给服务器时,通常采用 POST 方法,并且还需要指明 Content-Type 及实际负载体(body):
```powershell
$bodyJson = @{ key="value"; anotherKey="anotherValue"} | ConvertTo-Json
$postResponse = Invoke-WebRequest -Uri "https://api.example.com/post-endpoint" `
-Method Post `
-ContentType "application/json" `
-Body $bodyJson
```
以上展示了如何利用 `Invoke-WebRequest` 来执行不同类型的 HTTP 操作,从而实现与 web API 的交互功能[^3]。
阅读全文
相关推荐


















