安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows
PS C:\Users\Administrator> # 获取当前系统PATH
>> $currentPath = [Environment]::GetEnvironmentVariable("Path", "Machine") -split ';'
>>
>> # 移除旧版curl路径(如果有)
>> $newPath = $currentPath | Where-Object { $_ -ne "C:\Windows\System32" }
>>
>> # 确保新版curl路径在最前面
>> $curlPath = "E:\curl-8.15.0_4-win64-mingw\bin"
>> $newPath = @($curlPath) + $newPath | Select-Object -Unique
>>
>> # 更新系统PATH
>> [Environment]::SetEnvironmentVariable(
>> "Path",
>> ($newPath -join ';'),
>> "Machine"
>> )
>>
>> # 刷新当前会话PATH
>> $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
>>
PS C:\Users\Administrator> # 编辑 PowerShell 配置文件
>> $profileContent = @"
>> # 移除冲突别名
>> Remove-Item Alias:curl -ErrorAction SilentlyContinue
>>
>> # 添加自定义 curl 函数
>> function global:curl {
>> & "$curlPath\curl.exe" @args
>> }
>> "@
>>
>> # 创建/更新配置文件
>> if (-not (Test-Path $PROFILE)) {
>> New-Item -Path $PROFILE -ItemType File -Force | Out-Null
>> }
>> $profileContent | Set-Content -Path $PROFILE
>>
>> # 重新加载配置
>> . $PROFILE
>>
>> # 验证
>> curl --version
>>
curl 8.15.0 (x86_64-w64-mingw32) libcurl/8.15.0 LibreSSL/4.1.0 zlib/1.3.1.zlib-ng brotli/1.1.0 zstd/1.5.7 WinIDN libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 ngtcp2/1.14.0 nghttp3/1.11.0
Release-Date: 2025-07-16
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSLS-EXPORT SSPI threadsafe UnixSockets zstd
PS C:\Users\Administrator> # 修复不兼容的配置
>> $curlrcPath = "$env:USERPROFILE\.curlrc"
>> if (Test-Path $curlrcPath) {
>> (Get-Content $curlrcPath) |
>> Where-Object { $_ -notmatch "--compressed" } |
>> Set-Content $curlrcPath
>> }
>>
PS C:\Users\Administrator> # 测试1:版本验证
>> curl --version
>>
>> # 测试2:HTTP请求
>> curl -v https://example.com
>>
>> # 测试3:文件下载
>> curl -LO https://example.com/index.html
>>
>> # 测试4:JSON API
>> curl -H "Accept: application/json" https://jsonplaceholder.typicode.com/todos/1
>>
curl 8.15.0 (x86_64-w64-mingw32) libcurl/8.15.0 LibreSSL/4.1.0 zlib/1.3.1.zlib-ng brotli/1.1.0 zstd/1.5.7 WinIDN libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 ngtcp2/1.14.0 nghttp3/1.11.0
Release-Date: 2025-07-16
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSLS-EXPORT SSPI threadsafe UnixSockets zstd
* Host example.com:443 was resolved.
* IPv6: (none)
* IPv4: 96.7.128.175, 96.7.128.198, 23.192.228.80
* Trying 96.7.128.175:443...
* ipv4 connect timeout after 4971ms, move on!
* Trying 96.7.128.198:443...
* ipv4 connect timeout after 2480ms, move on!
* Trying 23.192.228.80:443...
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: E:\curl-8.15.0_4-win64-mingw\bin\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; L=Los Angeles; O=Internet Corporation for Assigned Names and Numbers; CN=*.example.com
* start date: Jan 15 00:00:00 2025 GMT
* expire date: Jan 15 23:59:59 2026 GMT
* subjectAltName: host "example.com" matched cert's "example.com"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 1: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to example.com (23.192.228.80) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://example.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: example.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: example.com
> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/2 200
< accept-ranges: bytes
< content-type: text/html
< etag: "84238dfc8092e5d9c0dac8ef93371a07:1736799080.121134"
< last-modified: Mon, 13 Jan 2025 20:11:20 GMT
< content-length: 1256
< cache-control: max-age=2768
< date: Tue, 12 Aug 2025 10:57:29 GMT
< alt-svc: h3=":443"; ma=93600,h3-29=":443"; ma=93600
<
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
* Connection #0 to host example.com left intact
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
PS C:\Users\Administrator> # 1. 修复PATH优先级问题
>> $curlPath = "E:\curl-8.15.0_4-win64-mingw\bin"
>> $currentPath = [Environment]::GetEnvironmentVariable("Path", "Machine") -split ';'
>> $newPath = @($curlPath) + ($currentPath | Where-Object { $_ -ne $curlPath }) | Select-Object -Unique
>> [Environment]::SetEnvironmentVariable("Path", ($newPath -join ';'), "Machine")
>> $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
>>
>> # 2. 创建永久别名方案
>> $profileContent = @"
>> # 移除冲突别名
>> Remove-Item Alias:curl -ErrorAction SilentlyContinue
>>
>> # 添加自定义curl函数
>> function global:curl {
>> & "$curlPath\curl.exe" @args
>> }
>> "@
>>
>> if (-not (Test-Path $PROFILE)) {
>> New-Item -Path $PROFILE -ItemType File -Force | Out-Null
>> }
>> $profileContent | Set-Content -Path $PROFILE
>> . $PROFILE # 重新加载配置文件
>>
>> # 3. 修复.curlrc配置警告
>> $curlrcPath = "$env:USERPROFILE\.curlrc"
>> if (Test-Path $curlrcPath) {
>> (Get-Content $curlrcPath) |
>> Where-Object { $_ -notmatch "--compressed" } |
>> Set-Content $curlrcPath
>> }
>>
PS C:\Users\Administrator> # 测试结果输出
>> curl --version
>> # 输出: curl 8.15.0 (x86_64-w64-mingw32) ... Release-Date: 2025-07-16 ...
>>
>> curl -v https://example.com
>> # 输出: * Host example.com:443 was resolved...
>> # * IPv6: (none)
>> # * IPv4: 96.7.128.175, 96.7.128.198, 23.192.228.80
>> # * Trying 96.7.128.175:443...
>>
curl 8.15.0 (x86_64-w64-mingw32) libcurl/8.15.0 LibreSSL/4.1.0 zlib/1.3.1.zlib-ng brotli/1.1.0 zstd/1.5.7 WinIDN libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 ngtcp2/1.14.0 nghttp3/1.11.0
Release-Date: 2025-07-16
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSLS-EXPORT SSPI threadsafe UnixSockets zstd
* Host example.com:443 was resolved.
* IPv6: (none)
* IPv4: 96.7.128.175, 96.7.128.198, 23.192.228.80
* Trying 96.7.128.175:443...
* ipv4 connect timeout after 4997ms, move on!
* Trying 96.7.128.198:443...
* ipv4 connect timeout after 2493ms, move on!
* Trying 23.192.228.80:443...
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: E:\curl-8.15.0_4-win64-mingw\bin\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; L=Los Angeles; O=Internet Corporation for Assigned Names and Numbers; CN=*.example.com
* start date: Jan 15 00:00:00 2025 GMT
* expire date: Jan 15 23:59:59 2026 GMT
* subjectAltName: host "example.com" matched cert's "example.com"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 1: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to example.com (23.192.228.80) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://example.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: example.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: example.com
> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/2 200
< content-type: text/html
< etag: "84238dfc8092e5d9c0dac8ef93371a07:1736799080.121134"
< last-modified: Mon, 13 Jan 2025 20:11:20 GMT
< cache-control: max-age=2733
< date: Tue, 12 Aug 2025 10:58:04 GMT
< alt-svc: h3=":443"; ma=93600,h3-29=":443"; ma=93600
< content-length: 1256
<
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
* Connection #0 to host example.com left intact
PS C:\Users\Administrator> # curl_version_check.ps1
>> $installedVersion = (curl --version | Select-String "curl (\d+\.\d+\.\d+)").Matches[0].Groups[1].Value
>> $latestVersion = (curl -s https://curl.se/info |
>> Select-String "The latest release: curl (\d+\.\d+\.\d+)").Matches[0].Groups[1].Value
>>
>> if ([version]$installedVersion -lt [version]$latestVersion) {
>> Write-Host "⚠️ 发现新版本: $latestVersion (当前: $installedVersion)" -ForegroundColor Yellow
>> Write-Host "执行以下命令更新: winget install curl.curl" -ForegroundColor Cyan
>> } else {
>> Write-Host "✅ 已安装最新版 curl $installedVersion" -ForegroundColor Green
>> }
>>
无法对 Null 数组进行索引。
所在位置 行:3 字符: 1
+ $latestVersion = (curl -s https://curl.se/info |
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [],RuntimeException
+ FullyQualifiedErrorId : NullArray
✅ 已安装最新版 curl 8.15.0
PS C:\Users\Administrator> function Set-CurlVersion {
>> param(
>> [ValidateSet("8.15", "system")]
>> [string]$Version = "8.15"
>> )
>>
>> $pathItems = [System.Collections.ArrayList]@(
>> [Environment]::GetEnvironmentVariable("Path", "Machine") -split ';'
>> )
>>
>> switch ($Version) {
>> "8.15" {
>> $pathItems.Remove("C:\Windows\System32") | Out-Null
>> if (-not $pathItems.Contains($curlPath)) {
>> $pathItems.Insert(0, $curlPath)
>> }
>> }
>> "system" {
>> $pathItems.Remove($curlPath) | Out-Null
>> if (-not $pathItems.Contains("C:\Windows\System32")) {
>> $pathItems.Add("C:\Windows\System32") | Out-Null
>> }
>> }
>> }
>>
>> $newPath = $pathItems -join ';'
>> [Environment]::SetEnvironmentVariable("Path", $newPath, "Machine")
>> $env:Path = $newPath
>>
>> Write-Host "已切换到 curl $Version 版本" -ForegroundColor Green
>> }
>>
PS C:\Users\Administrator> function Invoke-SecureDownload {
>> param(
>> [string]$Url,
>> [string]$ExpectedHash,
>> [string]$OutputPath = (Split-Path -Leaf $Url)
>> )
>>
>> curl -LO $Url
>> $actualHash = (Get-FileHash -Path $OutputPath -Algorithm SHA256).Hash
>>
>> if ($actualHash -ne $ExpectedHash) {
>> Remove-Item $OutputPath -Force
>> throw "文件哈希验证失败! 可能被篡改或下载不完整"
>> }
>>
>> Write-Host "✅ 文件验证成功: $OutputPath" -ForegroundColor Green
>> return $OutputPath
>> }
>>
>> # 使用示例:
>> # Invoke-SecureDownload -Url "https://example.com/important.zip" -ExpectedHash "a1b2c3d4..."
>>
PS C:\Users\Administrator> # 综合测试脚本
>> Write-Host "=== 开始 curl 功能验证测试 ===" -ForegroundColor Cyan
>>
>> # 测试1: 基本功能
>> Write-Host "测试1: 版本验证" -ForegroundColor Yellow
>> curl --version
>>
>> # 测试2: HTTP请求
>> Write-Host "`n测试2: HTTP请求" -ForegroundColor Yellow
>> curl -v https://example.com
>>
>> # 测试3: 文件下载
>> Write-Host "`n测试3: 文件下载" -ForegroundColor Yellow
>> curl -LO https://example.com/index.html
>> if (Test-Path .\index.html) {
>> Write-Host "✅ 文件下载成功" -ForegroundColor Green
>> Remove-Item .\index.html -Force
>> }
>>
>> # 测试4: JSON API
>> Write-Host "`n测试4: JSON API调用" -ForegroundColor Yellow
>> curl -H "Accept: application/json" https://jsonplaceholder.typicode.com/todos/1
>>
>> Write-Host "`n=== 所有测试通过 ===" -ForegroundColor Green
>>
=== 开始 curl 功能验证测试 ===
测试1: 版本验证
curl 8.15.0 (x86_64-w64-mingw32) libcurl/8.15.0 LibreSSL/4.1.0 zlib/1.3.1.zlib-ng brotli/1.1.0 zstd/1.5.7 WinIDN libpsl/0.21.5 libssh2/1.11.1 nghttp2/1.66.0 ngtcp2/1.14.0 nghttp3/1.11.0
Release-Date: 2025-07-16
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli CAcert HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM PSL SPNEGO SSL SSLS-EXPORT SSPI threadsafe UnixSockets zstd
测试2: HTTP请求
* Host example.com:443 was resolved.
* IPv6: (none)
* IPv4: 96.7.128.175, 96.7.128.198, 23.192.228.80
* Trying 96.7.128.175:443...
* ipv4 connect timeout after 4996ms, move on!
* Trying 96.7.128.198:443...
* ipv4 connect timeout after 2496ms, move on!
* Trying 23.192.228.80:443...
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: E:\curl-8.15.0_4-win64-mingw\bin\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Unknown (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / [blank] / UNDEF
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; L=Los Angeles; O=Internet Corporation for Assigned Names and Numbers; CN=*.example.com
* start date: Jan 15 00:00:00 2025 GMT
* expire date: Jan 15 23:59:59 2026 GMT
* subjectAltName: host "example.com" matched cert's "example.com"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert Global G3 TLS ECC SHA384 2020 CA1
* SSL certificate verify ok.
* Certificate level 0: Public key type ? (256/128 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 1: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Certificate level 2: Public key type ? (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to example.com (23.192.228.80) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://example.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: example.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: example.com
> User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Curl/8.15.0
> Accept: */*
>
* Request completely sent off
< HTTP/2 200
< accept-ranges: bytes
< content-type: text/html
< etag: "84238dfc8092e5d9c0dac8ef93371a07:1736799080.121134"
< last-modified: Mon, 13 Jan 2025 20:11:20 GMT
< content-length: 1256
< cache-control: max-age=2684
< date: Tue, 12 Aug 2025 10:58:53 GMT
< alt-svc: h3=":443"; ma=93600,h3-29=":443"; ma=93600
<
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<style type="text/css">
body {
background-color: #f0f0f2;
margin: 0;
padding: 0;
font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
div {
width: 600px;
margin: 5em auto;
padding: 2em;
background-color: #fdfdff;
border-radius: 0.5em;
box-shadow: 2px 3px 7px 2px rgba(0,0,0,0.02);
}
a:link, a:visited {
color: #38488f;
text-decoration: none;
}
@media (max-width: 700px) {
div {
margin: 0 auto;
width: auto;
}
}
</style>
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is for use in illustrative examples in documents. You may use this
domain in literature without prior coordination or asking for permission.</p>
<p><a href="https://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
* Connection #0 to host example.com left intact
测试3: 文件下载
✅ 文件下载成功
测试4: JSON API调用
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
=== 所有测试通过 ===
PS C:\Users\Administrator>