Я видел много вопросов по этому поводу, и все указывает на то, что я использую ConfigureAwait (false), но даже после этого он по-прежнему не возвращает никакого ответа. Когда я запускаю отладчик, код останавливается на PostAsync и не продолжается с моим кодом. Я что-то здесь не так делаю? Это связано со мной, вызывая API через HTTPS?
Вот код:
public async static Task<PaymentModel> AddAsync(Card card)
{
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:", "hidden"))));
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
var cardJson = JsonConvert.SerializeObject(card);
var postRequest = new StringContent(cardJson, Encoding.UTF8, "application/json");
var request = await client.PostAsync(new Uri("https://sample-3rd-party-api/api/endpoint/here"), postRequest).ConfigureAwait(false);
var content = await request.Content.ReadAsStringAsync().ConfigureAwait(false);
}
EDIT:
В ответ на комментарии ниже, код содержится в методе AddAsync (Card card), вызываемом из нажатия кнопки с помощью обработчика:
public async void OnExecute(object sender, EventArgs args)
{
//some code here
payment = await PaymentModel.AddAsync(card).ConfigureAwait(false);
}
РЕДАКТИРОВАТЬ 2:
Я попытался пропинговать API, но он возвращает запрос, истекший по тайм-ауту, но когда я попробовал его с помощью Postman, все нормально (API - это просто песочница, которая открыта для всех, так что можно поделиться этим ):
РЕДАКТИРОВАТЬ 3:
Мне кажется, проблема в том, что у меня нет SSL-сертификата для доступа к API. У меня есть сервер PHP, который подключается к тому же API, и я должен установить для SSL_VERIFYPEER значение false, чтобы я мог получить к нему доступ (не волнуйтесь, я добавил cacert, чтобы снова включить true). Может ли та же самая проблема происходить здесь? Если да, что я могу сделать, чтобы создать действующий сертификат для моего приложения xamarin forms