InvalidOperationException при выполнении запроса UnityWebRequest с PHPSESSID - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь выполнить запрос GET для получения некоторой информации о пользователе с сервера, но все, что я получил до сих пор, - это либо ответ 403 Forbidden, либо InvalidOperationException. Есть ли простой способ сделать GET с UnityWebRequest, имея в виду, что мне нужен PHPSESSID пользователя?

Это для многопользовательской игры Unity, над которой я работаю, использующей сервер, поэтому, когда вы входите в игру, он автоматически запрашивает информацию, необходимую для входа в систему. Единственное требование для запроса на работу - наличие в файлах cookie PHPSESSID пользователя, который хорошо работал, когда я тестировал в Postman, но, к сожалению, не может заставить его работать в самом Unity. Я пытался разными способами отправить это PHPSESSID, используя SetRequestHeader, но пока не получаю никакого прогресса.

Вот код, из-за которого возникает проблема:

private IEnumerator GetUserDataRequest(string PHPSESSID) 
{
    UnityWebRequest request = UnityWebRequest.Get(myUrl);

    // This one gives me an InvalidOperationException
    request.SetRequestHeader("Cookie", "PHPSESSID=" + PHPSESSID);

    // And those gives me an 403 forbidden response from the server
    //request.SetRequestHeader("PHPSESSID", PHPSESSID);
    //request.SetRequestHeader("Set-Cookie", "PHPSESSID=" + PHPSESSID);

    yield
    return request.SendWebRequest();

    if (request.isNetworkError) 
    {
        Debug.LogWarning("Error while getting the user data.");
    } 
    else 
    {
        //...
    }
}

Сервер должен отправить мне информацию о пользователе в формате json, но, как я уже говорил, первая строка SetRequestHeader приводит к исключению:

InvalidOperationException: Невозможно переопределить системные заголовки

в то время как остальные 2 выдают мне запрещенный ответ 403. Я предполагаю, что сервер не видит идентификатор сеанса, который я отправляю, или я его вообще не отправляю.

...