UnityWebRequest未发送POST数据



当Unity发送POST请求时,它没有传递POST数据,因此服务器返回一个错误(它得到服务器响应(。我看到有几个人遇到了类似的问题,通过添加www.chunkedTransfer = false;解决了这个问题,但这对我来说不起作用

我还看到有些人使用WWWForm而不是IMultipartFormSection,但我没有尝试过,因为它已被弃用。

我使用的是PHP,但我也尝试过使用Perl,但它也不起作用。当我手动发送POST请求时,一切正常,所以问题似乎在Unity中。我是Unity的新手,如果有任何帮助,我们将不胜感激。我使用的是当前最新版本,2018.2.18f1个人版。

我的代码与发送POST请求的官方Unity文档几乎相同,但显然它不起作用。这是我的代码:

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"]; ?>

Christoph Lütjen指出,根据这一点,它应该是new MultipartFormDataSection("data", data),尽管官方文档示例使用new MultipartFormDataSection("field1=foo&field2=bar")

将其更改为new MultipartFormDataSection("data", data)解决了此问题。

最新更新