現在、私は奇妙な問題に直面していました。自分のインターネット接続をオフにして、処理コードを自分の上に置きます。私はそれが私にいくつかのエラーコードを返すと思ったが、ただ例外を表示するのではなく空白の応答を与える。画面上に詳細を印刷すると、デバッグ出力が表示されます。Webサーバーからの空白応答の処理
基本的に私は、インターネット接続がない場合、ダイアログボックスを表示します。しかし、どのようにこの状況を処理する!
サーバー側から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);
}
私はこれにいくつかの提案をしてください。もっと情報が必要な場合は、私は利用可能です。
上記のソースコードは、私のコードで参照する必要があるif文のどの部分が真になっているかで動作しません。 www.errorは私の応答ではnullなので、間違いなくあなたのインターネット接続のチェックコードが私に間違った返答を与えてしまいます。 – Siddharth
if文を逆順にするだけで、必要なら実際にあなたが言ったことはほとんど理解できません。 – Everts
if-else文のどの部分を実行すれば、より明確なアイデアがあるか考えてみてください。もし私のインターネットがうまくいかなかったら、それは私にwww.error!= nullを与えてくれるはずですが、現時点では逆にwww.error == nullがtrueになっています。だから私はこれも混乱している! – Siddharth