> 技术文档 > 【Android Studio】为Android Studio设置HTTP代理_android studio 设置代理

【Android Studio】为Android Studio设置HTTP代理_android studio 设置代理

给你讲下如何在 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=密码

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 代理配置示例,包括:

  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

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/ 查看环境变量 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 \"检测完成。\"

php

1.77 KB

© 菜鸟-创作你的创作


使用说明

  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 通过代理测试访问 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

© 菜鸟-创作你的创作


使用方法

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

chmod +x check_android_proxy.sh

php

31 Bytes

© 菜鸟-创作你的创作

  1. 运行脚本:

./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

© 菜鸟-创作你的创作


使用说明

  1. 保存脚本为 android_proxy_advanced_check.sh
  2. 赋予执行权限:

chmod +x android_proxy_advanced_check.sh

php

40 Bytes

© 菜鸟-创作你的创作

  1. 运行脚本:

./android_proxy_advanced_check.sh

php

33 Bytes

© 菜鸟-创作你的创作

  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\"

php

2.11 KB

© 菜鸟-创作你的创作


运行说明:

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

Set-ExecutionPolicy RemoteSigned

php

32 Bytes

© 菜鸟-创作你的创作

允许本地脚本运行。

  1. 执行脚本:

.\\android_proxy_advanced_check.ps1

php

34 Bytes

© 菜鸟-创作你的创作

  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()

php

3.32 KB

© 菜鸟-创作你的创作


使用说明

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

【Android Studio】为Android Studio设置HTTP代理 - 菜鸟-创作你的创作