HttpClient kullanarak bir e-posta hesabı için Atom beslemesi almaya çalışıyorum. mail.google.com
'u bulmaya ve özel HttpClientHandler
ile kullanmaya çalışmadan önce işe yaramadı.Gmail Atom Beslemesini HttpClient ile Kullanma
Çözüm aradım ve sunucuya kimlik bilgilerini geçirmek için Yetkilendirme üstbilgisini kullanabileceğimi öğrendim, ancak bu da çalışmıyor. Yanlış bir şey mi yapıyorum? Neden 401 hatası alıyorum? Bu yöntem artık çalışmıyor mu? Sonra
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);
}
Teşekkürler, zaten işe almayı başardım. OAuth2 veya benzeri bir saçmalık kullandım ve bir süre sonra bunu hallettim. – Reynevan