0
HttpClientを使用してメールアカウントのAtomフィードを取得しようとしています。私がmail.google.com
を手に入れようとする前に、それをカスタムHttpClientHandler
と一緒に使ってみましたが、うまくいきませんでした。HttpClientを使用したGmail Atomフィードの取得
私は解決策を探して、「認証ヘッダーを使用してサーバーに資格情報を渡すことができますが、これも機能しません」ということを知りました。私は何か間違っているのですか? 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