我有这段代码,我想将其用作调用的基础,我需要对 REST API GET 请求进行调用以返回 JSON 数据。我可以调用它并且工作正常。现在我想插入我需要的网站。但是,该站点需要我拥有的用户名/密码。我只是不知道在这种情况下如何实现它。我习惯使用WebRequest,但看到有人推荐使用HttpClient。
{{1}}
答案 0 :(得分:0)
以下是 HttpClientHandler
类文档中的代码示例:
static async Task Main()
{
// Create an HttpClientHandler object and set to use default credentials
HttpClientHandler handler = new HttpClientHandler();
handler.UseDefaultCredentials = true;
// Create an HttpClient object
HttpClient client = new HttpClient(handler);
// Call asynchronous network methods in a try/catch block to handle exceptions
try
{
HttpResponseMessage response = await client.GetAsync("http://www.contoso.com/");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch(HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ",e.Message);
}
// Need to call dispose on the HttpClient and HttpClientHandler objects
// when done using them, so the app doesn't leak resources
handler.Dispose();
client.Dispose();
}
在这种情况下,它使用系统默认凭据,但您可以根据需要自行创建 NetworkCredential
。这意味着,在您的代码中,您可以更改此内容:
Using client As HttpClient = New HttpClient()
'...
End Using
像这样:
Using handler As New HttpClientHandler With {.Credentials = New NetworkCredential(username, password)},
client As New HttpClient(handler)
'...
End Using