目前,我遇到了一些奇怪的问题。我关闭了我的互联网连接,把一些处理代码放在他们的上面。我以为它会返回一些错误代码,但它只是给我空白的响应,而不是显示异常。当我在屏幕上打印更多细节时,我得到了以下调试输出。
基本上我想在没有互联网连接时显示对话框。但是如何处理这种情况!!!
因为服务器端没有json响应,所以我从服务器接收了一些字节。这是我的代码:
Dictionary<string,string> headerDisc = new Dictionary<string, string> ();
headerDisc.Add ("Api-Key", "You API Key");
WWW www = new WWW (GameConstants.CONTESTANT_LIST_BASE_URL, new byte[] { (byte)0 }, headerDisc);
yield return www;
if (www.error == null) {
Debug.Log ("bytes: " + www.bytes.Length);
Debug.Log ("size: " + www.size);
Debug.Log ("length: " + www.text.Length);
Debug.Log ("Data: " + www.text);
if (www.text.Length <= 0) {
AppManager.Instance.DialogMessage = "No Server Response Found!";
Camera.main.SendMessage ("ActivateDialogBoxPanel", true, SendMessageOptions.DontRequireReceiver);
} else {
JSONObject jsonObj = new JSONObject (www.text);
JSONObject messageObj = jsonObj [TAG_MESSAGE];
string successValueStr = jsonObj [TAG_SUCCESS].ToString ();
if (successValueStr.Equals (VALUE_TRUE))
// success
else
// fail
}
} else {
Debug.Log ("Error: " + www.error);
AppManager.Instance.DialogMessage = "Error:" + www.error;
Camera.main.SendMessage ("ActivateDialogBoxPanel", true, SendMessageOptions.DontRequireReceiver);
}
请在此给我一些建议。如果您想了解更多信息,我可以获得。
答案 0 :(得分:0)
据我了解,您要检查是否禁用了互联网连接,向用户显示消息。例如,你可以写这样的东西。
$url = "http://127.0.0.1:8090/animal-speak";
$response = \Httpful\Request::get($url)
->send();
echo "{$response->body}"
然后在你的Start()函数中写下这个。
IEnumerator checkInternetConnection(Action<bool> action){
WWW www = new WWW("http://google.com");
yield return www;
if (www.error != null) {
action (false);
} else {
action (true);
}
}
答案 1 :(得分:0)
你的网址错误。您认为您正在获取json文件,但实际上您正在获取HTML页面。
例如,如果您在github上存储json文件:
https://github.com/name/reponame/blob/master/folder/data.json
这是下载html,因为这是检查浏览器内容的网址。
https://raw.githubusercontent.com/name/reponame/blob/master/folder/data.json
这就是实际存储文本文件的地方。
在您的情况下,您可能有类似的问题。当您需要json文件时,可以访问HTML内容。这就是警告所说的,不正确的json并显示HTML文件的启动。
因此,您确实拥有有效的连接,而不是有效的网址。