我正在Unity上開發一款遊戲,每2小時需要重置玩家的生命,並避免作弊我試圖使用互聯網時間。爲此,我在C#上使用了一個簡單的方法從microsoft.com獲取DateTime。問題是,有時連接失敗,我希望它發生這種情況時返回一個布爾,所以我可以得到System.DateTime.Now,並儘快連接可用時再次檢查Internet時間。我嘗試了一些東西,但沒有奏效。這裏是我使用的代碼:當連接失敗時,讓HttpWebRequest.GetResponse()返回一個值
public DateTime GetInternetTime()
{
var myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
myHttpWebRequest.Timeout = 5000;
myHttpWebRequest.ReadWriteTimeout = 5000;
var response = myHttpWebRequest.GetResponse();
if (response == null)
{
dateTime = DateTime.Now;
connecionFailed = true;
}
string todaysDates = response.Headers["date"];
dateTime = DateTime.ParseExact(todaysDates, "ddd, dd MMM yyyy HH:mm:ss 'GMT'", CultureInfo.InvariantCulture.DateTimeFormat, DateTimeStyles.AssumeUniversal);
connecionFailed = false;
return dateTime;
}
請幫忙!我真的被困在這!
請解釋「連接失敗」 - 你得到了什麼確切的錯誤信息,以及代碼行。 – PhillipH
這是一款Android遊戲,有時用戶無法訪問互聯網,或者只是超時。發生這種情況時,控制檯會拋出:WebException:請求超時System.net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)。我想知道的是當用戶無法訪問互聯網或者超時時如何獲取{connectionFailed = true}。 – ronald677br