私はSystem.Net.Http HttpClientを使用してGithubの残りのAPIを呼び出しています。C#System.Net.HttpClient断続的な401 Github APIで無許可
以下に生成されるHTTPクライアントを使用して、10件のリクエストのうち5件が「401 Unauthorized」と応答します。私は郵便配達員に同じURLとヘッダーをつけて、「401 Unauthorized」という返事は一切受け取りません。明らかに、私の問題はクライアント側です。
合理的な検索から、多くの異なるアドバイスが返されました。最も一般的なのは、HttpHandlerまたはwebrequestを使用することでしたが、依然としていくつかの要求が失敗する理由はまだ分かりません。私の最高の推測では、Githubが時々リダイレクトされ、クライアントがそれをうまく処理しないということでした。私は資格情報のキャッシングに関するいくつかの参考文献を見ましたが、これらの例はすべて "NetworkCredential"オブジェクトを示しましたが、OAuthの場合、以下に示すようにベアラトークンをヘッダーに入れています。
誰でも問題の原因を説明できますか?
public static HttpClient GetClient(string bearerToken)
{
HttpClient client = new HttpClient();
client.BaseAddress = _githubApiUri;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_mediaTypeWithQualityHeaderValue));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken);
client.DefaultRequestHeaders.Add("User-Agent", "System.Net.Http Agent");
return client;
}