Я пытаюсь выполнить запрос 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. Я предполагаю, что сервер не видит идентификатор сеанса, который я отправляю, или я его вообще не отправляю.