HttpMethod не аутентифицируется с WebDAV на Xamarin
Я использую Xamarin для разработки приложения. Приложение подключается к одному из наших серверов и аутентифицируется по протоколу NTLM. Все хорошо с подключением, за исключением очень специфического способа.
Я тестирую свой код как на консоли (PowerShell), так и на Android. Поэтому, когда я использую обычный протокол HTTP (GET, PUT и т. Д.), Все идет хорошо на обеих платформах. Но когда я пытаюсь использовать WebDAV (PROPFIND), я получаю ошибку http 401 (Аутентификация) ТОЛЬКО на Android. В консоли работает нормально. Вот код:
public void UpdateCredentials()
{
credentials = new NetworkCredential(username, password, domain);
credentialCache = new CredentialCache();
credentialCache.Add(new Uri(site1), "NTLM", credentials);
credentialCache.Add(new Uri(site2), "NTLM", credentials);
connectionHandler = new HttpClientHandler()
{
Credentials = credentialCache,
UseDefaultCredentials = false
};
connection = new HttpClient(connectionHandler);
try
{
connection.DefaultRequestHeaders.Add("Connection", "Keep-Alive");
}
catch { }
}
public async Task<string> PropFindAsync(string _url, int _depth=0)
{
string _content = "";
connection.Timeout = new TimeSpan(0, 2, 20);
var method = new HttpMethod("PROPFIND");
var request = new HttpRequestMessage(method, _url);
request.Headers.Add("Prefer", "return-minimal");
request.Headers.Add("Depth", string.Format("{0}",_depth));
request.Headers.Add("Translate", "f");
var response = await connection.SendAsync(request);
statusCode = response.StatusCode;
_content = await response.Content.ReadAsStringAsync();
return _content;
}
UpdateCredentials() Инициализирует класс, а PropFindAsync() возвращает мне содержимое. Библиотека в обоих проектах - System.Net.Http.
Кто-нибудь может мне помочь? Спасибо!