duanluangua8850 2018-12-01 18:08
浏览 805
已采纳

UnityWebRequest不发送POST数据

When Unity sends the POST request it doesn't pass the POST data, so the server returns an error (it gets the server response). I've seen that several people had a similar issue and it got fixed by adding www.chunkedTransfer = false;, however, that doesn't work for me.

I've also seen that some people use WWWForm instead of IMultipartFormSection, but I haven't tried it because it is deprecated.

I'm using PHP, but I've also tried it with Perl and it didn't work either. When I manually send a POST request everything works normally, so it seems the issue is in Unity. I'm new to Unity, so any help would be appreciated. I'm using the current latest version, 2018.2.18f1 Personal.

My code is pretty much the same as the official Unity documentation for sending POST request, but apparently it doesn't work. Here is my code:

C#:

public void Click() {
    StartCoroutine(PostRequest("http://127.0.0.1/test.php", "help"));
}

IEnumerator PostRequest(string url, string data) {
    List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
    formData.Add(new MultipartFormDataSection("data=" + data));

    UnityWebRequest www = UnityWebRequest.Post(url, formData);
    www.chunkedTransfer = false;
    yield return www.SendWebRequest();

    if (www.isNetworkError || www.isHttpError) {
        Debug.Log(www.error);
    } else {
        Debug.Log(www.downloadHandler.text);
    }
}

PHP:

<?php echo "Server received: " . $_POST["data"]; ?>
  • 写回答

1条回答 默认 最新

  • douji6940 2018-12-01 18:29
    关注

    Christoph Lütjen pointed out that according to this it should be new MultipartFormDataSection("data", data), despite the official documentation example using new MultipartFormDataSection("field1=foo&field2=bar").

    Changing it to new MultipartFormDataSection("data", data) fixed the issue.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置