Я пытаюсь получить канал Atom для учетной записи электронной почты, используя HttpClient. Прежде чем я попытался получить mail.google.com
и использовать их с обычным HttpClientHandler
, но это не сработало.Получение фида Atom Atom с HttpClient
Я искал решение и смог выяснить, что я могу использовать `Авторизованный заголовок для передачи учетных данных на сервер, но это тоже не работает. Я делаю что-то неправильно? Почему я ошибся в gtting 401? Этот метод больше не работает?
Вот мой код:
public async Task<bool> CheckMail()
{
AMailRefresher.handler.CookieContainer = new CookieContainer();
string url = "https://mail.google.com/mail/feed/atom";
var encoded = StringToByte64(user + ":" + password);
HttpResponseMessage res = null;
try
{
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Get, url);
req.Headers.Add("Authorization", "Basic " + encoded);
res = await AMailRefresher.http.SendAsync(req);
}
catch { }
var xml = await res.Content.ReadAsStringAsync();
if (lastFeedScan == null)
lastFeedScan = xml;
if (xml != lastFeedScan)
{
lastFeedScan = xml;
return true;
}
return false;
}
private static string StringToByte64(string text)
{
ASCIIEncoding encoding = new ASCIIEncoding();
var bytes = encoding.GetBytes(text);
return Convert.ToBase64String(bytes, 0, bytes.Length);
}
Спасибо, мне уже удалось заставить его работать. Я использовал OAuth2 или какую-то такую глупость, и через некоторое время мне удалось это решить. – Reynevan