我正在创建一个使用HttpClient
来调用URL的可执行程序。我尝试使用DefaultNetworkCredentials
,因为我不知道服务器的用户ID和密码。以下代码在我的本地计算机上成功运行,但是在部署到服务器时会出错。
我的代码:
HttpClientHandler authtHandler = new HttpClientHandler()
{
Credentials = CredentialCache.DefaultNetworkCredentials
};
// Call the URL
using (HttpClient httpClient = new HttpClient(authtHandler))
{
var formContent = new FormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("testingkey", "testingvalue")
});
// Make it sync instead of async by using .Result
var result = httpClient.PostAsync(url, formContent).Result;
// Get the content, for verification
var content = result.Content;
}
答案 0 :(得分:2)
DefaultNetworkCredentials是运行应用程序的当前安全上下文的身份验证凭据。对于客户端应用程序,这些通常是运行该应用程序的用户的Windows凭据。
如果用户没有使用HttpClient所使用的URL的权限,则将出现错误。要使其正常工作