37 lines
1.8 KiB
PowerShell
37 lines
1.8 KiB
PowerShell
# fetch_apifox_doc.ps1 - runs OUTSIDE the sandbox via UAC elevation
|
|
# Fetches the Apifox openapi doc page and saves it to a temp file.
|
|
$ErrorActionPreference = "Stop"
|
|
$url = "https://apifox-openapi.apifox.cn/api-173409873"
|
|
$out = "C:\Users\Docker\AppData\Local\Temp\apifox_doc_fetched.html"
|
|
$log = "C:\Users\Docker\AppData\Local\Temp\apifox_fetch_log.txt"
|
|
|
|
try {
|
|
# bypass SSL validation for IP-based access if needed
|
|
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = { $true }
|
|
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
|
|
|
|
$resp = Invoke-WebRequest -Uri $url -TimeoutSec 30 -UseBasicParsing -Headers @{
|
|
"User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
|
}
|
|
[System.IO.File]::WriteAllText($out, $resp.Content, [System.Text.Encoding]::UTF8)
|
|
"HTTP $($resp.StatusCode) len=$($resp.Content.Length) -> saved to $out" | Out-File $log -Encoding utf8
|
|
} catch {
|
|
"ERROR: $($_.Exception.Message)" | Out-File $log -Encoding utf8
|
|
# try IP-based with host header as fallback
|
|
try {
|
|
$ip = "8.136.114.212"
|
|
$req = [System.Net.HttpWebRequest]::Create("https://$ip/api-173409873")
|
|
$req.Host = "apifox-openapi.apifox.cn"
|
|
$req.UserAgent = "Mozilla/5.0"
|
|
$req.Timeout = 30000
|
|
$req.ServerCertificateValidationCallback = { $true }
|
|
$resp = $req.GetResponse()
|
|
$reader = New-Object System.IO.StreamReader($resp.GetResponseStream())
|
|
$content = $reader.ReadToEnd()
|
|
[System.IO.File]::WriteAllText($out, $content, [System.Text.Encoding]::UTF8)
|
|
"FALLBACK HTTP $([int]$resp.StatusCode) len=$($content.Length)" | Out-File $log -Encoding utf8
|
|
} catch {
|
|
"FALLBACK ERROR: $($_.Exception.Message)" | Out-File $log -Encoding utf8
|
|
}
|
|
}
|