Unity C#将变量发送到PHP服务器

时间:2017-06-26 12:00:31

标签: c# php post unity3d

简介

我正在努力解决我出错的地方,我已经阅读了this统一答案,解释了如何以统一方式发布数据(C#)然后我阅读this网站解释如何使用获取/ post /请求在php中接收数据。从此以后,我提出了这个代码,以便从统一发布var1hello并在我的php服务器代码上接收它然后回显它以记录它并检查是否发生了这种情况。

C#(Unity)

using UnityEngine;
using System.Collections;

public class CommunicateWithServer : MonoBehaviour
{

    void Start()
    {
        string url = "http://www.purelogicgames.com/index.php";
        WWWForm form = new WWWForm();
        form.AddField("var1", "hello");
        WWW www = new WWW(url, form);
        StartCoroutine(WaitForRequest(www));
    }

    IEnumerator WaitForRequest(WWW www)
    {
        yield return www;

        // check for errors
        if (www.error == null)
        {
            Debug.Log("WWW Ok!: " + www.data);
        }
        else
        {
            Debug.Log("WWW Error: " + www.error);
        }
    }
}

服务器代码(使用Netbeans IDE的Php)

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<?php
    if($_REQUEST["var1"]) 
    {
        echo "Recieved ". $_REQUEST["var1"]. " success!";
        exit();
    }
    else
    {
        echo "Request Failed";
    }
?>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        echo '<p>Hello World?</p>';
        echo $_REQUEST["var1"]. " Success?";
        ?>
    </body>
</html>

然而,当我在编辑器中运行统一代码时,我在打开网页时会得到一个失败的结果

Unity编辑

enter image description here

网页

enter image description here

Netbeans IDE(不确定是否重要)

enter image description here

感谢您阅读本文,我想这里有一个简单的解决方案,我已经查看了无数其他问题的页面,等等关于php统一通信,但我仍然没有找到它,所以我希望这不是&#39; ta time浪费了另一个问题的重复,并且简单来说,它可以证明是其他问题的一个有用的例子。所以随意提出任何问题,希望能回答我的问题。只是把它放在某个上下文中,这是我第一次正确使用PHP(因此在我的代码中仍然存在一个hello world)并且我习惯于在统一中使用C#并且将我的一般编程知识描述为相当有限。感谢。

1 个答案:

答案 0 :(得分:1)

这样做是为了确保PHP正确处理事情:

<?php
if (isset($_REQUEST["var1"])) {
    echo "Received ". $_REQUEST["var1"]. " success!";
    exit();
} else {
    http_status_code(400);
    echo "Request Failed";
}

删除其他所有内容(我认为你不需要它)。

如果验证http://www.purelogicgames.com/index.php,则应导致400错误并回显&#34;请求失败&#34;而http://www.purelogicgames.com/index.php?var1=testvalue应该会产生一个OK响应并回显#34;收到测试值成功!&#34;。

如果发生这种情况,那么PHP代码正在做它应该做的事情。

C#代码似乎运行正常,日志似乎正在截断收到的响应(如果响应比上面的响应短得多,也会修复)。