Unity PHP Post无法发送POST变量

4
我使用WWWForm,但它在ssl连接下无法正常工作。如果我在安全域上使用http连接,则不会发送POST变量;而如果我使用https,则会出现未知错误。因此,它只能在非安全域中正常工作并发送变量。Unity3d版本为2017.3.0p1。我尝试了Windows和Mac版本。以下是C#代码:
    WWWForm form = new WWWForm();


    form.AddField("a", "var1");
    form.AddField("b", "var2");
    string url = "http://www.example.com/ajax/test.php";

    WWW w = new WWW(url, form);
    yield return w;
    if (!string.IsNullOrEmpty(w.error)) {
        Debug.Log(w.error);
    }
    else {
        Debug.Log(w.text);
   }

它只返回test

这里是test.php:

<?
echo 'test '.$_POST["a"];
?>

请帮助我,我该怎么做?


尝试在您的URL开头加上“http://://”。 - Brandon Miller
@BrandonMiller 我尝试了,但它没有起作用。 - Muhammet Demir
如果您打印 $_REQUEST 的 var_dump,输出会是什么? - Demigod
这是var_dump输出的内容 array(0) {} @Demigod - Muhammet Demir
最佳实践是仅使用<?php而非 <?。那么,你如何调试它呢?你是否正在检查 Debug.Log(w.text) 数据? - Simone Cabrino
1个回答

3

看起来是Unity版本 2017.3.0 中的一个缺陷。 如果您使用SSL将数据发布到托管在服务器上并设置为rewrite/re-direct all的URL,则会返回未知错误

我相信这很快就会被修复,但在修复之前,您可以考虑切换到版本5.3.8以避免此问题。


是的没错!我已经卸载了2017.3.0并安装了5.3.8,它起作用了!虽然不是完全的解决方案,但目前它解决了我的问题。 - Muhammet Demir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接