【问题标题】:UnityWebRequest sending blank data to HTTPUnityWebRequest 向 HTTP 发送空白数据
【发布时间】:2018-02-28 03:43:33
【问题描述】:

这是我正在向主机发送数据的示例,但是,我认为它发送的是空白数据。例如,在“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 并在 Unity 中打印 $message 时,它什么也不打印。

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

它曾经在我的旧虚拟主机上工作,而且,如果我通过 Postman 发送 POST 请求,一切正常。我需要允许防火墙中的某些内容吗?

【问题讨论】:

  • 尝试从 php 打印一个静态变量,看看你是否可以从统一端接收它。例如,echo "Hello";。我还认为您应该包括如何从 php.ini 发送 json。那部分不见了。此外,您从 C# 接收它的部分也丢失了
  • 我也在unity论坛上开了一个帖子,他们让我把UnityWebRequest上的chunkedTransfer发送到false,问题就解决了!感谢您的评论。
  • 请将此添加为您问题的答案。我相信它会对遇到它的其他人有用。

标签: c# unity3d http-post


【解决方案1】:

在调用yield return www.SendWebResquest() 之前,只需添加www.chunkedTransfer = false;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多