77using System . Windows . Forms ;
88using System . IO ;
99using Microsoft . Win32 ;
10- using System . Drawing ;
11- using static System . Windows . Forms . VisualStyles . VisualStyleElement . Button ;
1210using System . Linq ;
1311using System . Collections . Generic ;
14- using System . Xml . Linq ;
1512using System . Net . Http ;
1613using Newtonsoft . Json . Linq ;
1714
@@ -791,41 +788,49 @@ private async void timer1_Tick(object sender, EventArgs e)
791788
792789 private async Task CheckGitHubVersionAsync ( )
793790 {
794- using ( HttpClient client = new HttpClient ( ) )
791+ try
795792 {
796- try
793+ // 首先检查是否有网络连接
794+ if ( ! IsNetworkAvailable ( ) )
797795 {
798- client . DefaultRequestHeaders . UserAgent . ParseAdd ( "request" ) ;
799-
800- string url = "https://api.github.com/repos/cmliu/CFnat-Windows-GUI/releases/latest" ;
801- HttpResponseMessage response = await client . GetAsync ( url ) ;
796+ return ; // 静默返回,不显示错误
797+ }
802798
803- if ( response . IsSuccessStatusCode )
799+ using ( HttpClient client = new HttpClient ( ) )
800+ {
801+ try
804802 {
805- string responseBody = await response . Content . ReadAsStringAsync ( ) ;
806- JObject json = JObject . Parse ( responseBody ) ;
807- string latestVersion = json [ "tag_name" ] . ToString ( ) ;
803+ client . DefaultRequestHeaders . UserAgent . ParseAdd ( "request" ) ;
804+ client . Timeout = TimeSpan . FromSeconds ( 5 ) ; // 设置5秒超时
808805
809- if ( latestVersion == 版本号 )
810- {
811- // 版本相同的逻辑处理
812- Console . WriteLine ( "已是最新版本!" ) ;
813- }
814- else
806+ string url = "https://api.github.com/repos/cmliu/CFnat-Windows-GUI/releases/latest" ;
807+ HttpResponseMessage response = await client . GetAsync ( url ) ;
808+
809+ if ( response . IsSuccessStatusCode )
815810 {
816- // 版本不同的逻辑处理
817- 标题 = "CFnat Windows GUI " + 版本号 + $ " 发现新版本: { latestVersion } 请及时更新!";
818- this . Text = 标题 ;
819- Console . WriteLine ( $ "发现新版本: { latestVersion } ") ;
811+ string responseBody = await response . Content . ReadAsStringAsync ( ) ;
812+ JObject json = JObject . Parse ( responseBody ) ;
813+ string latestVersion = json [ "tag_name" ] . ToString ( ) ;
814+
815+ if ( latestVersion != 版本号 )
816+ {
817+ 标题 = "CFnat Windows GUI " + 版本号 + $ " 发现新版本: { latestVersion } 请及时更新!";
818+ this . Text = 标题 ;
819+ }
820820 }
821821 }
822- }
823- catch ( Exception ex )
824- {
825- // 错误处理,比如网络错误等
826- Console . WriteLine ( $ "Error: { ex . Message } " ) ;
822+ catch
823+ {
824+ // 静默处理所有异常(网络错误、超时、JSON解析错误等)
825+ return ;
826+ }
827827 }
828828 }
829+ catch
830+ {
831+ // 静默处理任何其他异常
832+ return ;
833+ }
829834 }
830835
831836 private void button3_Click ( object sender , EventArgs e )
@@ -1045,5 +1050,18 @@ private void button5_Click(object sender, EventArgs e)
10451050 }
10461051 }
10471052
1053+ // 添加检查网络连接的辅助方法
1054+ private bool IsNetworkAvailable ( )
1055+ {
1056+ try
1057+ {
1058+ return NetworkInterface . GetIsNetworkAvailable ( ) ;
1059+ }
1060+ catch
1061+ {
1062+ return false ; // 如果无法检查网络状态,假设网络不可用
1063+ }
1064+ }
1065+
10481066 }
10491067}
0 commit comments