【Android Studio】为Android Studio设置HTTP代理_android studio 设置代理
给你讲下如何在 Android Studio 中设置 HTTP 代理,方便在受限网络环境下访问外部资源(比如 Maven 仓库、Gradle 下载依赖等)。
方法一:通过 Android Studio GUI 设置代理
- 打开 Android Studio。
- 进入菜单 File > Settings(macOS 是 Android Studio > Preferences)。
- 在设置窗口中,找到 Appearance & Behavior > System Settings > HTTP Proxy。
- 选择代理类型:
- No proxy(无代理)
- Auto-detect proxy settings(自动检测)
- Manual proxy configuration(手动配置)
- 如果选手动配置:
- 填写 HTTP Proxy 和 Port。
- 如果需要身份认证,勾选 Proxy authentication 并填写用户名和密码。
- 如果你有 HTTPS 和 SOCKS 代理,也可以配置。
- 点击 Check connection 按钮,输入一个 URL(例如 https://www.google.com)测试是否代理成功。
- 点击 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=密码
php
275 Bytes
© 菜鸟-创作你的创作
方法三:通过环境变量设置代理(命令行和系统环境)
设置环境变量 HTTP_PROXY 和 HTTPS_PROXY:
- Windows(CMD):
set HTTP_PROXY=http://用户名:密码@代理IP:端口
set HTTPS_PROXY=http://用户名:密码@代理IP:端口
php
74 Bytes
© 菜鸟-创作你的创作
- Linux/macOS(bash):
export HTTP_PROXY=http://用户名:密码@代理IP:端口
export HTTPS_PROXY=http://用户名:密码@代理IP:端口
php
80 Bytes
© 菜鸟-创作你的创作
注意事项
- 设置代理后,Gradle 依赖同步可能需要重新执行。
- 如果是企业或学校内网,代理配置一般需要问管理员获取正确地址和端口。
- Android Studio 的代理和系统代理是独立的,最好都配置正确。
- 如果你用的是 HTTPS 代理,确保代理地址支持 SSL 连接。
下面给你准备一个完整的 Android Studio HTTP 代理配置示例,包括:
- Android Studio GUI 代理设置步骤说明(已上面详述,这里不重复)
- gradle.properties 配置样例
- 环境变量设置示例脚本
- 排查代理问题的实用技巧
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
php
434 Bytes
© 菜鸟-创作你的创作
注意替换
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
php
158 Bytes
© 菜鸟-创作你的创作
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 \"代理环境变量设置完成\"
php
166 Bytes
© 菜鸟-创作你的创作
运行后,重新打开 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. 确认基础网络连接
- 测试无代理时能否访问外网
关闭所有代理设置,直接用浏览器访问 Gradle Services 检查能否访问。 - 测试命令行能否访问外网
打开终端,执行: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/echo %HTTP_PROXY% Linux/macOS: echo $HTTP_PROXYrm -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 \"检测完成。\"
php
1.77 KB
© 菜鸟-创作你的创作
使用说明
- 将脚本保存为
check_android_proxy.ps1。 - 修改脚本里
$proxyHost、$proxyPort、$proxyUser、$proxyPassword变量为你的代理信息。 - 以管理员权限打开 PowerShell,执行:
Set-ExecutionPolicy RemoteSigned允许本地脚本运行。 - 运行脚本:
.\\check_android_proxy.ps1
好,这里给你写一个 Linux/macOS 下的 Bash 版本代理检测脚本,功能包括:
- 打印当前环境变量
HTTP_PROXY和HTTPS_PROXY - 检查
~/.gradle/gradle.properties文件里的代理相关配置 - 使用
curl通过代理测试访问 Gradle Services - 简单错误提示
#!/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 \"检测完成。\"
php
926 Bytes
© 菜鸟-创作你的创作
使用方法
- 将脚本保存为
check_android_proxy.sh - 修改变量
PROXY_HOST、PROXY_PORT,以及需要时添加PROXY_USER和PROXY_PASS - 给脚本执行权限:
chmod +x check_android_proxy.sh
php
31 Bytes
© 菜鸟-创作你的创作
- 运行脚本:
./check_android_proxy.sh
php
24 Bytes
© 菜鸟-创作你的创作
好的,我帮你写一个更高级的 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\"
php
1.76 KB
© 菜鸟-创作你的创作
使用说明
- 保存脚本为
android_proxy_advanced_check.sh - 赋予执行权限:
chmod +x android_proxy_advanced_check.sh
php
40 Bytes
© 菜鸟-创作你的创作
- 运行脚本:
./android_proxy_advanced_check.sh
php
33 Bytes
© 菜鸟-创作你的创作
- 按提示输入代理地址和认证信息(如果需要),脚本会自动测试并保存详细日志。
明白!这里给你写一个 Windows PowerShell 版的高级代理检测与日志收集脚本,功能包括:
- 显示当前环境变量
HTTP_PROXY、HTTPS_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\"
php
2.11 KB
© 菜鸟-创作你的创作
运行说明:
- 将脚本保存为
android_proxy_advanced_check.ps1。 - 以管理员身份打开 PowerShell,执行:
Set-ExecutionPolicy RemoteSigned
php
32 Bytes
© 菜鸟-创作你的创作
允许本地脚本运行。
- 执行脚本:
.\\android_proxy_advanced_check.ps1
php
34 Bytes
© 菜鸟-创作你的创作
- 按提示输入代理地址和认证信息(如果需要),脚本自动测试并保存详细日志。
明白!这里帮你设计一个简易的 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()
php
3.32 KB
© 菜鸟-创作你的创作
使用说明
- 将上述代码保存为
AndroidProxyTest.ps1 - 在管理员权限 PowerShell 里执行
Set-ExecutionPolicy RemoteSigned - 运行脚本
.\\AndroidProxyTest.ps1 - 在弹出窗口中输入代理地址(必填),用户名和密码(可选)
- 点击“测试代理连接”,窗口下方显示测试日志,成功时会保存响应内容到日志文件
【Android Studio】为Android Studio设置HTTP代理 - 菜鸟-创作你的创作


