Я хочу реализовать функцию загрузки PDF-документа с помощью WebClient в Xamain iOS. В настоящее время он отлично работает для iOS 11, где я получаю куки, используя HttpCookieStore.
Для iOS 10 я не смог получить куки.
Поток для работы над этим 1. Получение файлов cookie 2. Создание запроса сервера веб-клиента с добавлением файлов cookie в заголовок.
для iOS 11,
Ниже приведен синтаксис для получения файлов cookie:
NSHttpCookie[] cookieStoreData;
if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
{
var cookieStore = webView.Configuration.WebsiteDataStore.HttpCookieStore;
cookieStoreData = await cookieStore.GetAllCookiesAsync();
}
Для iOS 10,
cookieStoreData = NSHttpCookieStorage.SharedStorage.Cookies;
Он не возвращает куки в этом сценарии, поэтому следующий вызов веб-клиента на сервер завершится неудачно (в случае iOS 10).
StringBuilder cookies = new StringBuilder();
var webClient = new WebClient ();
foreach (var temp in cookieStoreData)
{
cookies.Append(temp.Name + "=" + temp.Value + ";");
}
webClient.Headers.Add(HttpRequestHeader.Cookie, cookies.ToString());
webClient.DownloadDataAsync (webView.Url);
webClient.DownloadDataCompleted += (s, e) => {
if (e.Error == null)
{
// Downloading data......
}
else
{
Console.WriteLine("URL for page : " + e.Error.GetType());
Console.WriteLine("URL for page : " + e.Error);
new UIAlertView("Done", "Download Failed. Please try again.", null, "OK", null).Show();
}