Unity WebGL не публикует Azure Приложение функции: ошибка чтения формы - PullRequest
0 голосов
/ 09 апреля 2020

Проверено на Unity 2019.3.0f3 или 2019.3.0f5 или 2019.3.9 и Azure Функции V3.

Публикация из проекта Unity WebGL в функции azure в виде формы.

Я не могу получить запись в переменные в приложении Function: приложение Function выдает http 500 с «Неожиданным концом потока, возможно, содержимое уже прочитано другим компонентом». Поэтому, когда проект webgl запускается в браузере, chrome показывает 500 внутренних ошибок; firefox не показывает данные на консоли, но также не отображает ошибку, но вы можете увидеть ошибку http 500 с Fiddler.

Проект выполняется в редакторе и почтальоне.

Приложение функции теперь запущено и общедоступный для тестирования по адресу https://unitywebglbugtest.azurewebsites.net/api/TestBug

public class Function1
    {
        [FunctionName("TestBug")]
        public async Task<HttpResponseMessage> 

    TestBug([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
            {
                string myUsername = Convert.ToString(req.Form["clientusername"]);
                return new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent($"Result: {myUsername}", Encoding.UTF8, "text/plain")
                };
            }
    }

Созданный и размещенный проект Unity Webgl, который вы можете запустить для тестирования: https://webglappbugtest.azurewebsites.net

Пример формы отправки Unity:

List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
    string stringTest = "hello@gmail.com";
    formData.Add(new MultipartFormDataSection("clientusername", stringTest, "text/plain"));
    UnityWebRequest www = UnityWebRequest.Post("https://unitywebglbugtest.azurewebsites.net/api/TestBug", formData);
    Debug.Log("Now sending form " + stringTest);
    yield return www.SendWebRequest();
    string queryResult = www.downloadHandler.text;
    Debug.Log(queryResult);

Результат почтальона:

РЕДАКТИРОВАТЬ: похоже, что отправленное сообщение не конвертируется в некоторых системах при отправке. Бывает только в нескольких системах, следовательно, это работает для некоторых, но не для всех. Вот что Fiddler отправляет. Эта проблема недавно была помечена как ошибка в этом сообщении Unity . К сожалению, предложенный патч не работал для меня в Unity 2019.3.0f3,2019.3.0f5, 2019.3.9

К сожалению, решение параметров запроса небезопасно и его нельзя использовать, как видно из недавний взлом Zoom

Я поднял эту ошибку с Unity.

enter image description here

...