В процессе переноса Xamarin.Auth на Windows 8 я столкнулся со следующей проблемой. При попытке аутентификации в LinkedIn с использованием OAuth2 и запроса токена доступа путем обмена кодом авторизации для него https://developer.linkedin.com/documents/authentication, Xamarin.Auth пытается проанализировать результат (объект JSON), как если бы это была строка с отформатированным URL-адресом. В RequestAccessTokenAsync (OAuth2Authenticator.cs) есть следующий кодXamarin.Auth не удалось разобрать JSON LinkedIn OAuth2 Запрос на токен доступа, заменив код авторизации
var text = task1.Result.GetResponseText(); [JSON object]
var data = WebEx.FormDecode(text);
ли я что-то отсутствует? Это ошибка в коде Xamarin.Auth? Все веб-сайты, основанные на OAuth2, возвращают объекты JSON в этом сценарии, и если не так, как определить тип формата, в котором находится результат, кроме попытки поиска индикаторов в самом результате?
Update:
Я редактировал расширение GetResponseText вернуть тип содержимого, в данном случае приложения/JSON и используется Json.NET для разбора JSON как функция GetValueFromJson в рамках не работает для JSON возвращается в этом сценарии.
После работы с этим фреймворком на пару дней, это, кажется, «бета-версия», мне придется широко модифицировать его, чтобы он был переносимым через Win8, WP8, iOS и Android.
например. Expect100Continue не поддерживается в W8, придется удалить HttpWebRequest и заменить HttpClient.
например. LinkedIn требует, чтобы заголовок был настроен для возврата Json, эти опции должны быть доступны для вызывающего объекта фреймворка.
например. Анализ контента ContentType должен быть завершен в соответствии с соответствующими спецификациями.