C# .. API httpclient 身份验证和代理与用户名和密码

Muh*_*ter 3 c# api

我是 API 世界的新手,但我有一个问题,我想从 Web API 获取数据,但有两个身份验证

  • 首先是代理。
  • 其次是 API 基础身份验证。

这是我的获取操作代码:

        HttpClientHandler handler = new HttpClientHandler();
        handler.Credentials = new NetworkCredential("test", "testing");
        HttpClient client = new HttpClient(handler);
        client.BaseAddress = new Uri("http://test.abctesting.com/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.
            MediaTypeWithQualityHeaderValue("application/json"));

        HttpResponseMessage response = client.GetAsync("admin/apiv2/").Result;
        var tenders = response.Content.ReadAsAsync<tenders>().Result;
Run Code Online (Sandbox Code Playgroud)

这段代码对我来说很好用,但只是传递代理用户名和密码!如何使用身份验证用户名和密码继续获取 API 数据?

Jay*_*aya 5

由于您在评论中提到了“基本身份验证”,因此除了您拥有的内容之外,还添加了以下几行可能会有所帮助

 var byteArray = Encoding.ASCII.GetBytes($"{yourUsername}:{yourPassword}");
 client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
Run Code Online (Sandbox Code Playgroud)

虽然有的AUTH如其他流行的模式OAuthBearer等变化的关键AuthenticationHeaderValue根据认证模式,并适当地设定的值