У меня есть проект Xamarin android, использующий общий проект для всех моих сетевых сервисов, который прекрасно работает.В этом общем проекте у меня есть класс с методом, который вызывает конечную точку REST через HttpClient.PostAsync()
.Сейчас я работаю над версией для iOS и подумал, что было бы довольно безболезненно просто использовать те же классы / методы, которые я уже использовал для Android, но по какой-то причине iOS не работает.
I 'Я не получаю никаких исключений, просто вызов PostAsync()
, кажется, умирает и не делает ничего, что я могу сказать.Я также пробовал вызов GetAsync()
с тем же результатом ... ничего не происходит.
Вот пример кода:
public class UserService
{
public async Task<UserModel> LoginUser(UserModel userModel)
{
var url = new Uri(Constants.BaseUrl + "v2api/LoginUser");
try
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string userModelString = JsonConvert.SerializeObject(userModel);
var response = await client.PostAsync(url, new StringContent(userModelString, Encoding.Default, "application/json"));
if (response.IsSuccessStatusCode)
{
userModel = JsonConvert.DeserializeObject<UserModel>(await response.Content.ReadAsStringAsync());
}
}
}
catch (Exception e)
{
string exceptionString = e.ToString();
}
return userModel;
}
}
Я установил все точки останова, и этопопадает в строку: v ar response = await
, но это все.Я никогда ничего не получаю.Как упомянуто выше, это прекрасно работает с проектом android, только iOS не работает.Я уверен, что пропускаю что-то действительно простое, я просто не знаю, что это может быть.
Я пытался добавить это в свой файл info.plist
, но это не помогло:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mysite.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true />
<key>NSExceptionRequiresForwardSecrecy</key>
<false />
</dict>
</dict>
</dict>
есть предложения, где искать дальше?
tia