【问题标题】:Error 401 in C#C# 中的错误 401
【发布时间】:2012-07-23 08:25:13
【问题描述】:

我正在为 Windows 8 开发我的第一个应用程序,但是我遇到了一个问题,当我启动我的应用程序时,我收到错误“响应状态代码不表示成功:

401(需要授权)

所以是的,我需要包含用户名和密码,但我不知道我的代码在哪里:

var fond = new HttpClient();
var reponse = await fond.GetStreamAsync("http://example.com/search/mario%20kart" + TitleNewsGrid.Text);    

那么我在代码中的哪里包含用户名和密码?

【问题讨论】:

标签: c# .net exception-handling http-status-code-401 c#-5.0


【解决方案1】:

TransportSettings 中应该有一个Credentials 属性,例如

using (var client = new HttpClient())
{
    client.TransportSettings.Credentials = new System.Net.NetworkCredential("username", "pwd");
    ...
}

如果您无权访问TransportSettings 属性,则需要改用HttpClientHandler。复制代码没有意义,已经有一个很好的例子here

【讨论】:

  • 注意 using 语句的使用,它会导致客户端在离开作用域时被自动释放。
  • 嘿 :) 感谢您的帮助。目前我使用: System.Net.Http.HttpClient Fond = new HttpClient();但是TransportSettings不使用System.Net.Http.HttpClient...所以我有点想念^^'
  • @GuillaumeFortunier 你找到TransportSettings 属性了吗?
  • 私有异步 void PremierTest() { using (var handler = new HttpClientHandler()) { handler.Credentials = new System.Net.NetworkCredential("appendr", "e32!cdf");使用 (var client = new HttpClient(handler){}) { System.Net.Http.HttpClient Fond = new HttpClient(); var 响应 = await Fond.GetStreamAsync("ws.jeuxvideo.com/search/mario%20kart" + TitleNewsGrid.Text);但阻止在 Fond.GetStreamAsync
  • 听起来您的代码可能遇到了死锁。尝试here 提供的解决方案,我建议您也阅读here 发布的答案。
【解决方案2】:

试试这个

client.TransportSettings.Credentials = new System.Net.NetworkCredential("username", "password");

了解更多信息 http://msdn.microsoft.com/en-us/library/system.net.http.httpclient%28v=vs.110%29.aspx

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2020-06-29
    • 2013-12-20
    • 2017-01-08
    相关资源
    最近更新 更多