给你讲下如何在 Android Studio 中设置 HTTP 代理,方便在受限网络环境下访问外部资源(比如 Maven 仓库、Gradle 下载依赖等)。


方法一:通过 Android Studio GUI 设置代理

  1. 打开 Android Studio。
  2. 进入菜单 File > Settings(macOS 是 Android Studio > Preferences)。
  3. 在设置窗口中,找到 Appearance & Behavior > System Settings > HTTP Proxy
  4. 选择代理类型:
    • No proxy(无代理)
    • Auto-detect proxy settings(自动检测)
    • Manual proxy configuration(手动配置)
  5. 如果选手动配置:
    • 填写 HTTP Proxy 和 Port
    • 如果需要身份认证,勾选 Proxy authentication 并填写用户名和密码。
    • 如果你有 HTTPS 和 SOCKS 代理,也可以配置。
  6. 点击 Check connection 按钮,输入一个 URL(例如 https://www.google.com)测试是否代理成功。
  7. 点击 OK 保存。

方法二:通过 Gradle 配置文件设置代理(适用于命令行构建)

在项目根目录下的 gradle.properties 文件(如果没有就创建一个),添加:

systemProp.http.proxyHost=你的代理IP或域名
systemProp.http.proxyPort=代理端口

systemProp.https.proxyHost=你的代理IP或域名
systemProp.https.proxyPort=代理端口

# 如果需要认证:
systemProp.http.proxyUser=用户名
systemProp.http.proxyPassword=密码
systemProp.https.proxyUser=用户名
systemProp.https.proxyPassword=密码

方法三:通过环境变量设置代理(命令行和系统环境)

设置环境变量 HTTP_PROXY 和 HTTPS_PROXY

  • Windows(CMD):
set HTTP_PROXY=http://用户名:密码@代理IP:端口
set HTTPS_PROXY=http://用户名:密码@代理IP:端口
  • Linux/macOS(bash):
export HTTP_PROXY=http://用户名:密码@代理IP:端口
export HTTPS_PROXY=http://用户名:密码@代理IP:端口

注意事项

  • 设置代理后,Gradle 依赖同步可能需要重新执行。
  • 如果是企业或学校内网,代理配置一般需要问管理员获取正确地址和端口。
  • Android Studio 的代理和系统代理是独立的,最好都配置正确。
  • 如果你用的是 HTTPS 代理,确保代理地址支持 SSL 连接。

下面给你准备一个完整的 Android Studio HTTP 代理配置示例,包括:

  1. Android Studio GUI 代理设置步骤说明(已上面详述,这里不重复)
  2. gradle.properties 配置样例
  3. 环境变量设置示例脚本
  4. 排查代理问题的实用技巧

1. gradle.properties 代理配置示例

在你项目根目录(或全局用户目录下 ~/.gradle/gradle.properties)新建或编辑 gradle.properties 文件,添加如下内容:

# HTTP 代理地址和端口
systemProp.http.proxyHost=proxy.example.com
systemProp.http.proxyPort=8080

# HTTPS 代理地址和端口
systemProp.https.proxyHost=proxy.example.com
systemProp.https.proxyPort=8080

# 如果代理需要身份认证,取消注释并填写
# systemProp.http.proxyUser=username
# systemProp.http.proxyPassword=password

# systemProp.https.proxyUser=username
# systemProp.https.proxyPassword=password

# 不通过代理访问的地址列表(可选)
systemProp.http.nonProxyHosts=localhost|127.0.0.1

注意替换 proxy.example.com 和端口号为你的代理服务器地址和端口。


2. 环境变量代理设置脚本示例

Windows CMD(保存为 set_proxy.bat

@echo off
set HTTP_PROXY=http://username:password@proxy.example.com:8080
set HTTPS_PROXY=http://username:password@proxy.example.com:8080
echo 代理环境变量设置完成
pause

Linux/macOS Bash(保存为 set_proxy.sh

#!/bin/bash
export HTTP_PROXY="http://username:password@proxy.example.com:8080"
export HTTPS_PROXY="http://username:password@proxy.example.com:8080"
echo "代理环境变量设置完成"

运行后,重新打开 Android Studio 或终端即可生效。


3. 代理配置排查小技巧

  • 测试网络连通性
    打开终端或命令行,执行:curl -I https://www.google.com --proxy http://proxy.example.com:8080 查看是否能通过代理访问外网。
  • Gradle 代理日志调试
    在 gradle.properties 添加:org.gradle.logging.level=DEBUG 重新同步项目,查看 Gradle 详细日志,定位代理连接问题。
  • 关闭 Android Studio 内置代理,改用系统代理测试
    确认 Android Studio File > Settings > HTTP Proxy 中无误,或选择 No Proxy 后设置系统代理。
  • 检查防火墙和杀毒软件是否阻止代理端口
    确保代理端口未被本机安全软件阻断。

好的!这里给你整理了一份详细的 Android Studio 代理排查手册,帮助你定位和解决代理配置中常见的问题。


Android Studio 代理排查手册

1. 确认基础网络连接

  • 测试无代理时能否访问外网
    关闭所有代理设置,直接用浏览器访问 https://services.gradle.org/ 检查能否访问。
  • 测试命令行能否访问外网
    打开终端,执行:curl -I https://services.gradle.org/ 或用 ping services.gradle.org 看是否有响应。

2. 检查 Android Studio 代理设置

  • 打开 File > Settings > Appearance & Behavior > System Settings > HTTP Proxy
  • 如果使用手动代理,确认地址和端口正确无误。
  • 使用“Check connection”按钮测试连接是否成功。

3. 检查 Gradle 代理配置

  • 打开项目根目录的 gradle.properties 文件(或者用户目录 ~/.gradle/gradle.properties
  • 确认配置项:systemProp.http.proxyHost=代理地址 systemProp.http.proxyPort=代理端口 systemProp.https.proxyHost=代理地址 systemProp.https.proxyPort=代理端口
  • 若代理需要账号密码,确保配置正确:systemProp.http.proxyUser=用户名 systemProp.http.proxyPassword=密码 systemProp.https.proxyUser=用户名 systemProp.https.proxyPassword=密码

4. 开启 Gradle 调试日志,查看详细错误

  • 在 gradle.properties 文件添加:org.gradle.logging.level=DEBUG
  • 同步项目后,查看 Gradle Console 输出,查找连接代理失败、认证失败、超时等详细信息。

5. 环境变量检查

  • 查看是否设置了 HTTP_PROXY 和 HTTPS_PROXY 环境变量。
  • 确保环境变量格式正确,比如:export HTTP_PROXY="http://username:password@proxy.example.com:8080" export HTTPS_PROXY="http://username:password@proxy.example.com:8080"
  • Windows CMD 查看:echo %HTTP_PROXY% echo %HTTPS_PROXY%
  • macOS/Linux 查看:echo $HTTP_PROXY echo $HTTPS_PROXY

6. 防火墙和安全软件检查

  • 确认本机防火墙或杀毒软件未阻止 Android Studio 或代理端口。
  • 可临时关闭防火墙测试。

7. 使用命令行测试代理连通性

  • 使用 curl 或 wget 测试:curl -x http://代理地址:端口 -I https://services.gradle.org/ 观察是否能成功连接。

8. 清理 Gradle 缓存并重试

  • 有时缓存可能导致奇怪问题,删除 .gradle 目录后重试:rm -rf ~/.gradle/caches/
  • Windows 用户可以删除 %USERPROFILE%\.gradle\caches

9. 代理认证问题

  • 如果代理账号密码错误,Android Studio/Gradle 会报认证失败。
  • 重新确认账号密码无误,且密码中没有特殊字符(如 @:)需要 URL 编码。

10. 其他注意事项

  • 使用 VPN 或代理软件时,有时会影响代理设置,建议关闭 VPN 后单独测试代理。
  • 如果是企业网络,咨询网络管理员确认代理的相关信息。

附录:常用命令快速诊断

目的命令示例
测试无代理访问curl -I https://services.gradle.org/
测试代理访问curl -x http://proxy:port -I https://services.gradle.org/
查看环境变量Windows: echo %HTTP_PROXY% Linux/macOS: echo $HTTP_PROXY
清理 Gradle 缓存rm -rf ~/.gradle/caches/ (Linux/macOS)

好的,我帮你写一个简单的 Windows PowerShell 脚本,自动检测 Android Studio 和 Gradle 的代理配置状态,并尝试测试网络连通性。你可以根据实际情况修改代理地址和端口。


自动检测 Android Studio & Gradle 代理配置的 PowerShell 脚本示例

# 配置代理参数(请根据实际情况修改)
$proxyHost = "proxy.example.com"
$proxyPort = 8080
$proxyUser = "username"       # 如无认证可留空
$proxyPassword = "password"   # 如无认证可留空

# 检查 Android Studio 代理设置(简单检测环境变量)
Write-Host "==== 检查环境变量 HTTP_PROXY 和 HTTPS_PROXY ===="
Write-Host "HTTP_PROXY: " $env:HTTP_PROXY
Write-Host "HTTPS_PROXY: " $env:HTTPS_PROXY
Write-Host ""

# 检查 gradle.properties 配置(默认用户目录)
$gradlePropsPath = "$env:USERPROFILE\.gradle\gradle.properties"
if (Test-Path $gradlePropsPath) {
    Write-Host "==== 读取 gradle.properties 文件内容 ===="
    Get-Content $gradlePropsPath | Select-String "proxy"
} else {
    Write-Host "未找到 gradle.properties 文件,路径:" $gradlePropsPath
}
Write-Host ""

# 测试通过代理访问 Gradle 服务
Write-Host "==== 测试通过代理访问 https://services.gradle.org/ ===="

$proxyUri = "http://$proxyHost`:$proxyPort"
if ($proxyUser -and $proxyPassword) {
    # 如果需要身份认证,使用 WebClient 配置代理认证
    $credCache = New-Object System.Net.CredentialCache
    $cred = New-Object System.Net.NetworkCredential($proxyUser, $proxyPassword)
    $credCache.Add($proxyUri, "Basic", $cred)

    $webClient = New-Object System.Net.WebClient
    $webClient.Proxy = New-Object System.Net.WebProxy($proxyUri)
    $webClient.Proxy.Credentials = $credCache

    try {
        $content = $webClient.DownloadString("https://services.gradle.org/")
        Write-Host "通过代理访问成功,内容长度:" $content.Length
    } catch {
        Write-Host "通过代理访问失败,错误信息:" $_.Exception.Message
    }
} else {
    # 无认证代理,直接设置代理
    $webClient = New-Object System.Net.WebClient
    $webClient.Proxy = New-Object System.Net.WebProxy($proxyUri)

    try {
        $content = $webClient.DownloadString("https://services.gradle.org/")
        Write-Host "通过代理访问成功,内容长度:" $content.Length
    } catch {
        Write-Host "通过代理访问失败,错误信息:" $_.Exception.Message
    }
}

Write-Host "检测完成。"

使用说明

  1. 将脚本保存为 check_android_proxy.ps1
  2. 修改脚本里 $proxyHost$proxyPort$proxyUser$proxyPassword 变量为你的代理信息。
  3. 以管理员权限打开 PowerShell,执行:Set-ExecutionPolicy RemoteSigned 允许本地脚本运行。
  4. 运行脚本:.\check_android_proxy.ps1

好,这里给你写一个 Linux/macOS 下的 Bash 版本代理检测脚本,功能包括:

  • 打印当前环境变量 HTTP_PROXY 和 HTTPS_PROXY
  • 检查 ~/.gradle/gradle.properties 文件里的代理相关配置
  • 使用 curl 通过代理测试访问 https://services.gradle.org/
  • 简单错误提示

#!/bin/bash

# 代理配置(修改为你的代理地址和端口)
PROXY_HOST="proxy.example.com"
PROXY_PORT=8080

# 如果代理需要用户名密码,格式如下:
# PROXY_USER="username"
# PROXY_PASS="password"
# 代理认证参数,留空表示无认证
PROXY_AUTH=""

# 读取环境变量
echo "==== 当前环境变量 ===="
echo "HTTP_PROXY=$HTTP_PROXY"
echo "HTTPS_PROXY=$HTTPS_PROXY"
echo ""

# 检查 gradle.properties 文件代理配置
GRADLE_PROPS="$HOME/.gradle/gradle.properties"
if [[ -f "$GRADLE_PROPS" ]]; then
    echo "==== ~/.gradle/gradle.properties 中的代理配置 ===="
    grep -i proxy "$GRADLE_PROPS" || echo "没有找到代理相关配置"
else
    echo "未找到文件 ~/.gradle/gradle.properties"
fi
echo ""

# 构建 curl 代理参数
if [[ -n "$PROXY_USER" && -n "$PROXY_PASS" ]]; then
    PROXY_AUTH="-U $PROXY_USER:$PROXY_PASS"
fi

PROXY="$PROXY_HOST:$PROXY_PORT"

echo "==== 测试通过代理访问 https://services.gradle.org/ ===="
curl -x "$PROXY" $PROXY_AUTH -I --connect-timeout 10 https://services.gradle.org/ \
    && echo "通过代理访问成功" \
    || echo "通过代理访问失败"

echo ""
echo "检测完成。"

使用方法

  1. 将脚本保存为 check_android_proxy.sh
  2. 修改变量 PROXY_HOSTPROXY_PORT,以及需要时添加 PROXY_USER 和 PROXY_PASS
  3. 给脚本执行权限:
chmod +x check_android_proxy.sh
  1. 运行脚本:
./check_android_proxy.sh

好的,我帮你写一个更高级的 Bash 脚本,自动检测 Android Studio 和 Gradle 代理配置,并收集详细日志信息,方便排查问题。这个脚本会:

  • 打印环境变量代理设置
  • 读取并打印 gradle.properties 中的代理配置
  • 测试通过代理访问 Gradle 服务
  • 记录所有日志到一个文件,方便后续查看
  • 支持简单交互,提示用户输入代理信息

高级 Android Studio 代理检测脚本(Bash)

#!/bin/bash

LOGFILE="android_proxy_check_$(date +%Y%m%d_%H%M%S).log"

echo "=== Android Studio & Gradle 代理检测脚本 ===" | tee "$LOGFILE"
echo "检测时间:$(date)" | tee -a "$LOGFILE"
echo "" | tee -a "$LOGFILE"

# 读取环境变量
echo "---- 当前环境变量 ----" | tee -a "$LOGFILE"
echo "HTTP_PROXY=$HTTP_PROXY" | tee -a "$LOGFILE"
echo "HTTPS_PROXY=$HTTPS_PROXY" | tee -a "$LOGFILE"
echo "" | tee -a "$LOGFILE"

# 读取 gradle.properties 文件
GRADLE_PROPS="$HOME/.gradle/gradle.properties"
if [[ -f "$GRADLE_PROPS" ]]; then
    echo "---- ~/.gradle/gradle.properties 文件内容中代理配置 ----" | tee -a "$LOGFILE"
    grep -i proxy "$GRADLE_PROPS" | tee -a "$LOGFILE"
    if [ ${PIPESTATUS[0]} -ne 0 ]; then
        echo "没有找到代理相关配置" | tee -a "$LOGFILE"
    fi
else
    echo "未找到文件 ~/.gradle/gradle.properties" | tee -a "$LOGFILE"
fi
echo "" | tee -a "$LOGFILE"

# 提示用户输入代理信息(可回车跳过)
read -p "请输入代理地址 (host:port),直接回车跳过: " PROXY_INPUT
if [[ -n "$PROXY_INPUT" ]]; then
    PROXY="$PROXY_INPUT"
else
    # 尝试从环境变量中读取代理地址
    PROXY="${HTTP_PROXY#http://}"
    PROXY="${PROXY%%/*}"  # 截断参数
    if [[ -z "$PROXY" ]]; then
        echo "未检测到有效代理地址,跳过网络测试。" | tee -a "$LOGFILE"
        exit 0
    fi
fi

read -p "代理是否需要认证?(y/n): " AUTH_CHOICE
if [[ "$AUTH_CHOICE" == "y" || "$AUTH_CHOICE" == "Y" ]]; then
    read -p "请输入用户名: " PROXY_USER
    read -sp "请输入密码: " PROXY_PASS
    echo ""
    PROXY_AUTH="-U $PROXY_USER:$PROXY_PASS"
else
    PROXY_AUTH=""
fi

echo "" | tee -a "$LOGFILE"
echo "---- 测试通过代理访问 https://services.gradle.org/ ----" | tee -a "$LOGFILE"
curl -x "$PROXY" $PROXY_AUTH -I --connect-timeout 10 https://services.gradle.org/ 2>&1 | tee -a "$LOGFILE"

if [[ ${PIPESTATUS[0]} -eq 0 ]]; then
    echo "通过代理访问成功" | tee -a "$LOGFILE"
else
    echo "通过代理访问失败" | tee -a "$LOGFILE"
fi

echo "" | tee -a "$LOGFILE"
echo "检测完成,日志保存到 $LOGFILE"

使用说明

  1. 保存脚本为 android_proxy_advanced_check.sh
  2. 赋予执行权限:
chmod +x android_proxy_advanced_check.sh
  1. 运行脚本:
./android_proxy_advanced_check.sh
  1. 按提示输入代理地址和认证信息(如果需要),脚本会自动测试并保存详细日志。

明白!这里给你写一个 Windows PowerShell 版的高级代理检测与日志收集脚本,功能包括:

  • 显示当前环境变量 HTTP_PROXYHTTPS_PROXY
  • 读取用户目录下 gradle.properties 文件中代理相关配置
  • 让你交互式输入代理地址和认证(可选)
  • 用代理测试访问 https://services.gradle.org/
  • 全部输出和错误日志保存到时间戳命名的日志文件
  • 运行简单,方便排查 Android Studio 和 Gradle 代理问题

# 保存为 android_proxy_advanced_check.ps1

$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$logFile = "$PWD\android_proxy_check_$timestamp.log"

function Write-Log {
    param([string]$message)
    $message | Tee-Object -FilePath $logFile -Append
}

Write-Log "=== Android Studio & Gradle 代理检测脚本 ==="
Write-Log "检测时间:$(Get-Date)"
Write-Log ""

# 显示环境变量
Write-Log "---- 当前环境变量 ----"
Write-Log "HTTP_PROXY: $env:HTTP_PROXY"
Write-Log "HTTPS_PROXY: $env:HTTPS_PROXY"
Write-Log ""

# 读取 gradle.properties 文件
$gradlePropsPath = "$env:USERPROFILE\.gradle\gradle.properties"
if (Test-Path $gradlePropsPath) {
    Write-Log "---- gradle.properties 文件代理配置 ----"
    Select-String -Path $gradlePropsPath -Pattern "proxy" | ForEach-Object {
        Write-Log $_.Line
    }
} else {
    Write-Log "未找到文件 gradle.properties,路径: $gradlePropsPath"
}
Write-Log ""

# 交互输入代理地址
$proxyInput = Read-Host "请输入代理地址(host:port),直接回车跳过"
if ([string]::IsNullOrWhiteSpace($proxyInput)) {
    # 尝试从环境变量中提取代理
    if ($env:HTTP_PROXY) {
        $proxyInput = $env:HTTP_PROXY -replace "^http://", ""
        $proxyInput = $proxyInput.Split("/")[0]
        Write-Log "自动从环境变量获取代理地址: $proxyInput"
    } else {
        Write-Log "未检测到有效代理地址,跳过网络测试。"
        Write-Log "检测完成,日志保存到 $logFile"
        exit
    }
}

# 代理认证交互
$authChoice = Read-Host "代理是否需要认证?(y/n)"
$proxyUser = ""
$proxyPass = ""
if ($authChoice -eq "y" -or $authChoice -eq "Y") {
    $proxyUser = Read-Host "请输入用户名"
    $proxyPass = Read-Host "请输入密码(输入不会隐藏)"
}

Write-Log ""
Write-Log "---- 测试通过代理访问 https://services.gradle.org/ ----"

try {
    $webClient = New-Object System.Net.WebClient
    $proxyUri = "http://$proxyInput"
    $webProxy = New-Object System.Net.WebProxy($proxyUri)
    if ($proxyUser -and $proxyPass) {
        $credentials = New-Object System.Net.NetworkCredential($proxyUser, $proxyPass)
        $webProxy.Credentials = $credentials
    }
    $webClient.Proxy = $webProxy

    $response = $webClient.DownloadString("https://services.gradle.org/")
    Write-Log "通过代理访问成功,内容长度: $($response.Length)"
} catch {
    Write-Log "通过代理访问失败,错误信息: $($_.Exception.Message)"
}

Write-Log ""
Write-Log "检测完成,日志保存到 $logFile"

运行说明:

  1. 将脚本保存为 android_proxy_advanced_check.ps1
  2. 以管理员身份打开 PowerShell,执行:
Set-ExecutionPolicy RemoteSigned

允许本地脚本运行。

  1. 执行脚本:
.\android_proxy_advanced_check.ps1
  1. 按提示输入代理地址和认证信息(如果需要),脚本自动测试并保存详细日志。

明白!这里帮你设计一个简易的 Windows GUI 工具思路和示例代码,基于 PowerShell 和 WinForms,方便你直观地查看和设置 Android Studio 代理,并一键检测代理连通性,自动生成日志。


方案思路

  • 用 PowerShell + WinForms 做简单界面
  • 输入框填写代理地址(host:port)、用户名和密码
  • 按钮执行代理连通性检测
  • 文本框显示检测日志和结果
  • 保存日志到当前目录文件
  • 适合快速二次开发

简易 PowerShell WinForms 代理检测工具示例

Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing

# 创建窗体
$form = New-Object System.Windows.Forms.Form
$form.Text = "Android Studio 代理检测工具"
$form.Size = New-Object System.Drawing.Size(500,400)
$form.StartPosition = "CenterScreen"

# 代理地址标签和输入框
$labelProxy = New-Object System.Windows.Forms.Label
$labelProxy.Location = New-Object System.Drawing.Point(10,20)
$labelProxy.Size = New-Object System.Drawing.Size(100,20)
$labelProxy.Text = "代理地址 (host:port):"
$form.Controls.Add($labelProxy)

$textProxy = New-Object System.Windows.Forms.TextBox
$textProxy.Location = New-Object System.Drawing.Point(120,18)
$textProxy.Size = New-Object System.Drawing.Size(350,20)
$form.Controls.Add($textProxy)

# 用户名标签和输入框
$labelUser = New-Object System.Windows.Forms.Label
$labelUser.Location = New-Object System.Drawing.Point(10,60)
$labelUser.Size = New-Object System.Drawing.Size(100,20)
$labelUser.Text = "用户名 (可选):"
$form.Controls.Add($labelUser)

$textUser = New-Object System.Windows.Forms.TextBox
$textUser.Location = New-Object System.Drawing.Point(120,58)
$textUser.Size = New-Object System.Drawing.Size(150,20)
$form.Controls.Add($textUser)

# 密码标签和输入框
$labelPass = New-Object System.Windows.Forms.Label
$labelPass.Location = New-Object System.Drawing.Point(280,60)
$labelPass.Size = New-Object System.Drawing.Size(80,20)
$labelPass.Text = "密码 (可选):"
$form.Controls.Add($labelPass)

$textPass = New-Object System.Windows.Forms.TextBox
$textPass.Location = New-Object System.Drawing.Point(360,58)
$textPass.Size = New-Object System.Drawing.Size(110,20)
$textPass.UseSystemPasswordChar = $true
$form.Controls.Add($textPass)

# 运行按钮
$btnTest = New-Object System.Windows.Forms.Button
$btnTest.Location = New-Object System.Drawing.Point(10, 100)
$btnTest.Size = New-Object System.Drawing.Size(460,30)
$btnTest.Text = "测试代理连接"
$form.Controls.Add($btnTest)

# 日志显示文本框
$textLog = New-Object System.Windows.Forms.TextBox
$textLog.Location = New-Object System.Drawing.Point(10, 140)
$textLog.Size = New-Object System.Drawing.Size(460, 210)
$textLog.Multiline = $true
$textLog.ScrollBars = "Vertical"
$textLog.ReadOnly = $true
$form.Controls.Add($textLog)

# 日志写入函数
function Write-Log {
    param($msg)
    $textLog.AppendText($msg + "`r`n")
}

# 按钮点击事件
$btnTest.Add_Click({
    $textLog.Clear()
    Write-Log "开始代理检测..."
    $proxy = $textProxy.Text.Trim()
    if ([string]::IsNullOrEmpty($proxy)) {
        Write-Log "代理地址不能为空!"
        return
    }
    $user = $textUser.Text.Trim()
    $pass = $textPass.Text

    $webClient = New-Object System.Net.WebClient
    $webProxy = New-Object System.Net.WebProxy("http://$proxy")
    if ($user -ne "" -and $pass -ne "") {
        $credentials = New-Object System.Net.NetworkCredential($user, $pass)
        $webProxy.Credentials = $credentials
        Write-Log "使用认证代理"
    } else {
        Write-Log "使用无认证代理"
    }
    $webClient.Proxy = $webProxy

    try {
        $url = "https://services.gradle.org/"
        Write-Log "访问 $url ..."
        $result = $webClient.DownloadString($url)
        Write-Log "访问成功,内容长度: $($result.Length)"
        $logFile = "$PWD\android_proxy_test_log_$(Get-Date -Format 'yyyyMMdd_HHmmss').txt"
        $result | Out-File -FilePath $logFile -Encoding UTF8
        Write-Log "响应内容保存到 $logFile"
    }
    catch {
        Write-Log "访问失败: $($_.Exception.Message)"
    }
})

# 显示窗体
[void]$form.ShowDialog()

使用说明

  1. 将上述代码保存为 AndroidProxyTest.ps1
  2. 在管理员权限 PowerShell 里执行Set-ExecutionPolicy RemoteSigned
  3. 运行脚本.\AndroidProxyTest.ps1
  4. 在弹出窗口中输入代理地址(必填),用户名和密码(可选)
  5. 点击“测试代理连接”,窗口下方显示测试日志,成功时会保存响应内容到日志文件