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

时间:2016-07-12 08:13:25

标签: c# web-services web unity3d http-post

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

enter image description here

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

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

请在此给我一些建议。如果您想了解更多信息,我可以获得。

2 个答案:

答案 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文件的启动。

因此,您确实拥有有效的连接,而不是有效的网址。