Мужики, выручайте неумного, столкнулся с проблемой, что, отправляю post request на сервер, сервер генерирует ключ, и присылает его в JSON, однако, сколько не гуглил, получаю ошибку.
Запускаю корутину
PostStruct user = new PostStruct()
{
Login = "test",
Password = "test",
key = "TestKey" // исходящий ключ по дефолту в принципе пустой
};
string json = JsonUtility.ToJson(user);
//Debug.Log(json);
UnityWebRequest request = UnityWebRequest.Post("https://" + serverURI + "/login.php", json);
byte[] postBytes = Encoding.UTF8.GetBytes(json);
UploadHandler uploadHandler = new UploadHandlerRaw(postBytes);
request.uploadHandler = uploadHandler;
request.SetRequestHeader("Content-Type", "application/json; charset=UTF-8");
yield return request.SendWebRequest();
Debug.Log(request.downloadHandler.text);
PostStruct postStructFromServer = JsonUtility.FromJson<PostStruct>(request.downloadHandler.text);
Вроде бы отсылается и присылается, но на последней сточке, где идет парсинг, выбивает
Код ошибки
ArgumentException: JSON parse error: Invalid value.
UnityEngine.JsonUtility.FromJson (System.String json, System.Type type) (at <bd9566cca22541e58ad28d1fa2849830>:0)
UnityEngine.JsonUtility.FromJson[T] (System.String json) (at <bd9566cca22541e58ad28d1fa2849830>:0)
AuthRequest+<SendRequest>d__3.MoveNext () (at Assets/Auth/Scripts/AuthRequest.cs:58)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at <04258d1cdc1044248c2a17a6a31a3cf7>:0)
Но в дебаг логе показывает, что ответ то пришел, чо оно не парсит то, памагите
Array
(
[Login] => test
[Password] => test
[key] => TestKey
)
{"Login":"test","Password":"test","key":"kKCsDu836n"}
UnityEngine.Debug:Log(Object)
<SendRequest>d__3:MoveNext() (at Assets/Auth/Scripts/AuthRequest.cs:56)
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
p.s. гуглить пробовал, со структурой игрался
Выводится ошибка:
ArgumentException: JSON parse error: Invalid value.
UnityEngine.JsonUtility.FromJson (System.String json, System.Type type) (at C:/buildslave/unity/build/Modules/JSONSerialize/Public/JsonUtility.bindings.cs:42)
UnityEngine.JsonUtility.FromJson[T] (System.String json) (at C:/buildslave/unity/build/Modules/JSONSerialize/Public/JsonUtility.bindings.cs:30)
SocketController+<GetRequest>d__5.MoveNext () (at Assets/Scripts/SocketController.cs:77)
UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Scripting/Coroutines.cs:17)
Возникает в скрипте:
C# | ||
|
Добавлено через 3 часа 7 минут
Судя по всему, дело в этой строчке:
C# | ||
|
Но не могу понять в чем именно
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Локализация Json
Сделал локализацию игры на разные языки через json файлы — русский, англ, французский, немецкий, испанский, китайский и т.д.
И в редакторе на компьютере замечательно работает, но на андроиде работает только русский и английский язык.
Язык переключается с помощью кнопки, соответствующей конкретному языку.
В чем может быть подвох? Не сталкивался ли кто?
- egorych8
- UNIт
- Сообщения: 71
- Зарегистрирован: 28 июл 2020, 16:06
Re: Локализация Json
DbIMok 01 июн 2021, 21:27
что в логах?
-
DbIMok - Адепт
- Сообщения: 6321
- Зарегистрирован: 31 июл 2009, 14:05
Re: Локализация Json
egorych8 02 июн 2021, 15:09
DbIMok писал(а):что в логах?
А где посмотреть?
- egorych8
- UNIт
- Сообщения: 71
- Зарегистрирован: 28 июл 2020, 16:06
Re: Локализация Json
DbIMok 03 июн 2021, 16:18
-
DbIMok - Адепт
- Сообщения: 6321
- Зарегистрирован: 31 июл 2009, 14:05
Re: Локализация Json
egorych8 11 июн 2021, 17:52
В редакторе на ПК все работает, а на андроиде вот такое выдает в консоли
- egorych8
- UNIт
- Сообщения: 71
- Зарегистрирован: 28 июл 2020, 16:06
Re: Локализация Json
DbIMok 11 июн 2021, 21:33
скорее всего причина в том что json содержит BOM
надо или пересохранить файл без него (обычно текстовые редакторы дают возможность выбора)
или удалять его в массиве байт перед тем как скормить json парсеру через StringReader
-
DbIMok - Адепт
- Сообщения: 6321
- Зарегистрирован: 31 июл 2009, 14:05
Re: Локализация Json
egorych8 12 июн 2021, 10:41
DbIMok писал(а):скорее всего причина в том что json содержит BOM
надо или пересохранить файл без него (обычно текстовые редакторы дают возможность выбора)
или удалять его в массиве байт перед тем как скормить json парсеру через StringReader
Да, действительно кодировка была UTF с BOM в тех файлах, которые не работали на андроиде. Убрал и сразу заработало. Спасибо)
- egorych8
- UNIт
- Сообщения: 71
- Зарегистрирован: 28 июл 2020, 16:06
Вернуться в Почемучка
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24