在C#

时间:2019-07-08 09:10:27

标签: c# httpclient

我正在尝试从此api codaBox获取数据 我已经用swagger测试过 但是当我尝试使用时,收到的错误代码是401。我使用的是正确的标题,用户名和密码。

我使用具有相同凭据的swagger进行了测试,并获得了数据。

try
{
    var byteArray = Encoding.ASCII.GetBytes("Username:password");
    Client.DefaultRequestHeaders.Authorization =
        new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
    Client.BaseAddress = new Uri("https://myurl");

    Client.DefaultRequestHeaders.Add("X-Software-Company", "myToken");
    HttpResponseMessage response = await Client.GetAsync("");
    response.EnsureSuccessStatusCode();
    string responseBody = await response.Content.ReadAsStringAsync();
    // Above three lines can be replaced with new helper method below
    // string responseBody = await client.GetStringAsync(uri);

    Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
    Console.WriteLine("\nException Caught!");
    Console.WriteLine("Message :{0} ", e.Message);
}

我想获得200个状态代码。

1 个答案:

答案 0 :(得分:0)

您需要将"Username:password"替换为实际用户名和密码,并用"{your actual username}:{your actual password}"

分隔

Web也是UTF8(Ascii有时因为它是子集而起作用),但并不总是这样:

var byteArray = Encoding.UTF8.GetBytes("Username:password");