Я довольно новый программист и пытаюсь создать приложение в Xamarin Forms с C#. Я очень внимательно слежу за серией руководств с YouTube (https://www.youtube.com/playlist?list=PLV916idiqLvcKS1JY3S3jHWx9ELGJ1cJB). Я использую Visual Studio 2019, но руководство было создано с помощью Visual Studio 2017.
Я закончил работу с экраном входа в систему и пытаюсь перейти на следующую страницу в приложении. Экран входа в систему работает нормально, но как только я нажимаю кнопку «Войти», я получаю следующую ошибку:
Newtonsoft. Json .JsonReaderExeption: 'При анализе значения обнаружен неожиданный символ : <. Путь », строка 0, позиция 0. '</p>
Кажется, что проблема заключается в обмене данными между приложением и базой данных, хотя - поскольку я новичок в этом - я Я не совсем уверен.
Вот несколько ссылок на возможные решения, которые я нашел до сих пор:
При анализе значения обнаружен неожиданный символ ,
jsonreaderexception обнаружен неожиданный символ ,
https://social.msdn.microsoft.com/Forums/vstudio/de-DE/765784e3-abbd-4b14-a57c-81cdd3ad99ac/unexpected-character-encountered-while-parsing-value-lt-path-line-0-position-0?forum=csharpgeneral,
https://github.com/docusign/docusign-csharp-client/issues/72,
https://www.codeproject.com/Questions/1227147/Unexpected-character-encountered-while-parsing-val,
https://help.octopus.com/t/error-unexpected-character-encountered-while-parsing-value-path-line-0-position-0/4121.
Я нашел еще несколько, но, похоже, не могу применить их решения к моему коду. Кстати, вот он:
public RestService()
{
client = new HttpClient();
client.MaxResponseContentBufferSize = 256000;
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
}
public async Task<Token> Login(User user)
{
var postData = new List<KeyValuePair<string, string>>();
postData.Add(new KeyValuePair<string, string>("grant_type", grant_type));
postData.Add(new KeyValuePair<string, string>("username", user.Username));
postData.Add(new KeyValuePair<string, string>("password", user.Password));
var content = new FormUrlEncodedContent(postData);
var response = await PostResponseLogin<Token>(Constants.LoginUrl, content);
DateTime dt = new DateTime();
dt = DateTime.Today;
response.expire_date = dt.AddSeconds(response.expire_in);
return response;
}
public async Task<T> PostResponseLogin<T>(string weburl, FormUrlEncodedContent content) where T : class
{
var response = await client.PostAsync(weburl, content);
var jsonResult = response.Content.ReadAsStringAsync().Result;
var responseObject = JsonConvert.DeserializeObject<T>(jsonResult);
return responseObject;
}
public async Task<T> PostResponse<T>(string weburl, string jsonstring) where T : class
{
var Token = App.TokenDatabase.GetToken();
string ContentType = "application/json";
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", Token.access_token);
try
{
var Result = await client.PostAsync(weburl, new StringContent(jsonstring, Encoding.UTF8, ContentType));
if (Result.StatusCode == System.Net.HttpStatusCode.OK)
{
var JsonResult = Result.Content.ReadAsStringAsync().Result;
try
{
var ContentResp = JsonConvert.DeserializeObject<T>(JsonResult);
return ContentResp;
}
catch { return null; }
}
}
catch { return null; }
return null;
}
public async Task<T> GetResponse<T>(string weburl) where T : class
{
var Token = App.TokenDatabase.GetToken();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", Token.access_token);
try
{
var response = await client.GetAsync(weburl);
if (response.StatusCode == System.Net.HttpStatusCode.OK)
{
var JsonResult = response.Content.ReadAsStringAsync().Result;
try
{
var ContentResp = JsonConvert.DeserializeObject<T>(JsonResult);
return ContentResp;
}
catch { return null; }
}
}
catch { return null; }
return null;
}
Это единственная часть всего проекта, где реализовано json. Я не знаю, может ли ошибка исходить из другая часть, но я в этом сомневаюсь.
Как я уже говорил, я довольно новый программист, поэтому мне очень трудно понять, что не так или что я могу попробовать .