代码之家  ›  专栏  ›  技术社区  ›  jcsantos

UnityWebRequest向HTTP发送空白数据

  •  2
  • jcsantos  · 技术社区  · 6 年前

    这是我向主机发送数据的示例,但我认为它发送的是空白数据。例如,在“serverKeycode”中,我发送“example”,但服务器只接收“”。

    C类#

    WWWForm form = new WWWForm();
    form.AddField("serverKeycode", "example");
    form.AddField("username", authUsername.text);
    form.AddField("password", authPassword.text);
    
    UnityWebRequest www = UnityWebRequest.Post("http://example.com/authenticate.php", form);
    yield return www.SendWebRequest();
    

    PHP

    header("Access-Control-Allow-Credentials: true");
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
    header('Access-Control-Allow-Headers: Accept, X-Access-Token, X-Application-Name, X-Request-Sent-Time');
    
    $server_key = "example";
    $server_auth = filter_input(INPUT_POST, 'serverKeycode');
    if ($server_auth == $server_key)
    {
        // do something
    }
    else
    {
        $myJSON->returnType = 2;
        $myJSON->message = "Key: " . $server_auth; // just for checking the key
    }
    

    从PHP返回JSON并打印 $message 在Unity中,它不会打印任何内容。

    那么,这是否意味着Unity没有发送数据?

    它曾经在我的旧网络主机上工作,而且,如果我通过邮递员发送发帖请求,一切都会正常工作。我是否需要允许防火墙中存在某些内容?

    1 回复  |  直到 4 年前
        1
  •  2
  •   jcsantos    6 年前

    通话前 yield return www.SendWebResquest() 只需添加 www.chunkedTransfer = false;