繁体   English   中英

处理来自Web服务器的空白响应

[英]Handle Blank Response From Web Server

目前,我面临着某种奇怪的问题。 我关闭了互联网连接,在其上放置了一些处理代码。 我以为它将返回一些错误代码,但它只会给我空的响应,而不是显示异常。 当我在屏幕上打印更多详细信息时,得到了以下调试输出。

在此处输入图片说明

基本上,我想在没有互联网连接时显示对话框。 但是如何处理这种情况!!!

因为没有来自服务器端的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);
     }

请给我一些建议。 如果您需要更多信息,请联系我。

据我了解,您想检查是否已禁用Internet连接,向用户显示一条消息。 例如,您可以编写这样的内容。

  IEnumerator checkInternetConnection(Action<bool> action){
         WWW www = new WWW("http://google.com");
         yield return www;
         if (www.error != null) {
             action (false);
         } else {
             action (true);
         }
     } 

然后在您的Start()函数中编写此代码。

void Start(){
     StartCoroutine(checkInternetConnection((isConnected)=>{
         // handle connection status here
     }));
 }

您输入的网址错误。 您认为您正在获取json文件,但实际上您正在获取HTML页面。

例如,如果您将json文件存储在github上:

https://github.com/name/reponame/blob/master/folder/data.json

这是下载html,因为这是用于检查浏览器中内容的url。

https://raw.githubusercontent.com/name/reponame/blob/master/folder/data.json

这是文本文件的实际存储位置。

就您而言,您可能有类似的问题。 您需要json文件时就可以获取HTML内容。 这就是警告的意思,不正确的json并显示HTML文件的开头。

因此,您确实有一个有效的连接,但不是一个有效的URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM