【发布时间】:2019-04-18 11:14:28
【问题描述】:
我正在从一个 php 文件创建一个 UnityWebRequest 并获取一个字符串作为响应(或者我认为它是一个字符串?)。
我正在尝试解析返回的响应,但它一直返回 0。我将提供所有代码并尝试,但似乎没有任何效果,一切都返回 0。
尝试1:
IEnumerator GetConversationID(int user_id)
{
WWWForm conn = new WWWForm();
conn.AddField("cmd", "get_users_conversation_id");
conn.AddField("userid_php", user_id);
UnityWebRequest response = UnityWebRequest.Post("http://katiawashere.gr/qr/func/get_user_info.php", conn);
yield return response.SendWebRequest();
int.TryParse(response.downloadHandler.text, out StaticHolder.user_convid);
Debug.Log("This " + response.downloadHandler.text + "," + StaticHolder.user_convid);
}
调试“这 16,0”
尝试2:
IEnumerator GetConversationID(int user_id)
{
WWWForm conn = new WWWForm();
conn.AddField("cmd", "get_users_conversation_id");
conn.AddField("userid_php", user_id);
UnityWebRequest response = UnityWebRequest.Post("http://katiawashere.gr/qr/func/get_user_info.php", conn);
yield return response.SendWebRequest();
string m = response.downloadHandler.text;
int.TryParse(m, out StaticHolder.user_convid);
Debug.Log("This " + m + "," + StaticHolder.user_convid);
}
调试“这 16,0”
尝试 3:
IEnumerator GetConversationID(int user_id)
{
WWWForm conn = new WWWForm();
conn.AddField("cmd", "get_users_conversation_id");
conn.AddField("userid_php", user_id);
UnityWebRequest response = UnityWebRequest.Post("http://katiawashere.gr/qr/func/get_user_info.php", conn);
yield return response.SendWebRequest();
int.TryParse(response.downloadHandler.text.ToString(), out StaticHolder.user_convid);
Debug.Log("This " + response.downloadHandler.text.ToString() + "," + StaticHolder.user_convid);
}
调试“这 16,0”
试试 4?????:
IEnumerator GetConversationID(int user_id)
{
WWWForm conn = new WWWForm();
conn.AddField("cmd", "get_users_conversation_id");
conn.AddField("userid_php", user_id);
UnityWebRequest response = UnityWebRequest.Post("http://katiawashere.gr/qr/func/get_user_info.php", conn);
yield return response.SendWebRequest();
int.TryParse("16", out StaticHolder.user_convid);
Debug.Log("This " + response.downloadHandler.text + "," + StaticHolder.user_convid);
}
调试“这个 16,16”
所以我想我会失去理智。为什么解析“16”会返回 16 作为 int 但解析也是“16”的响应会返回 0?我在这里错过了什么。
编辑: 如果我使用下面的 if 语句,它永远不会进入,这是怎么回事?
m = response.downloadHandler.text;
n = "16";
if(m.Equals(n))
Debug.Log("Equals");
Debug.Log(m + "," + n);
调试“16,16”
【问题讨论】:
-
尝试将
yield return分成两行并将Debug.Log添加到response.SendWebRequest()的返回值。这可能会给你一些更深入的了解。 -
尝试将字符串“t”设置为 response.downloadHandler.text.ToString(),然后解析它。
-
不,仍然返回 0
标签: c# unity3d httprequest tryparse