Когда Unity отправляет запрос POST, он не передает данные POST, поэтому сервер возвращает ошибку (он получает ответ сервера).Я видел, что у некоторых людей была похожая проблема, и она была исправлена путем добавления www.chunkedTransfer = false;
, однако, это не работает для меня.
Я также видел, что некоторые люди вместо этого используют WWWForm
из IMultipartFormSection
, но я не пробовал, потому что он устарел.
Я использую PHP, но я также пробовал это с Perl, и он тоже не работал.Когда я вручную отправляю POST-запрос, все работает нормально, поэтому проблема заключается в Unity.Я новичок в Unity, поэтому любая помощь будет принята с благодарностью.Я использую текущую последнюю версию, 2018.2.18f1 Personal.
Мой код почти такой же, как официальная документация Unity для отправки запроса POST , но, очевидно, он не работает,Вот мой код:
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"]; ?>