fix: updates.rb 处理 Gitee raw URL 302 重定向
This commit is contained in:
+14
-7
@@ -32,14 +32,21 @@ class UpdateManager
|
||||
def self.fetch
|
||||
MethodExecutor.record('debug', 'updates', "Fetching version list from #{VERSION_LIST_URL}")
|
||||
uri = URI(VERSION_LIST_URL)
|
||||
response = Net::HTTP.get_response(uri)
|
||||
case response.code.to_i
|
||||
when 200
|
||||
MethodExecutor.record('debug', 'updates', 'Version list fetched successfully.')
|
||||
response.body
|
||||
else
|
||||
raise "Unexpected HTTP response code: #{response.code}"
|
||||
5.times do # 跟随重定向(Gitee raw URL → raw.giteeusercontent.com)
|
||||
response = Net::HTTP.get_response(uri)
|
||||
case response.code.to_i
|
||||
when 200
|
||||
MethodExecutor.record('debug', 'updates', 'Version list fetched successfully.')
|
||||
return response.body
|
||||
when 301, 302, 307, 308
|
||||
uri = URI(response['location'])
|
||||
MethodExecutor.record('debug', 'updates', "Following redirect to #{uri}")
|
||||
next
|
||||
else
|
||||
raise "Unexpected HTTP response code: #{response.code}"
|
||||
end
|
||||
end
|
||||
raise 'Too many redirects'
|
||||
rescue StandardError => e
|
||||
MethodExecutor.record('error', 'updates', "Failed to fetch version list: #{e}")
|
||||
nil
|
||||
|
||||
Reference in New Issue
Block a user