WebClient不向Windows Phone中的Web服务发送授权标头

时间:2014-04-09 16:19:18

标签: windows-phone-7 asp.net-web-api webclient restful-authentication

以下是Windows Phone上WebClient的情况 我能够拉动&将数据推送到使用asp.net Web Api托管的Web服务 现在我在Web服务上启用了基本身份验证,在Windows Phone上添加了Header到WebClient的代码 我注意到授权标头没有到达Web服务,因此Web服务抛出了错误的请求 已经搜索了stackoverflow和博客,但无法获得Web服务工作的授权标题 关于上述问题的一些方向将会有很大帮助。

1 个答案:

答案 0 :(得分:0)

由于某种原因,webclient没有发送授权标题。

我从网络上问了一个Windows Phone冠军。他建议安装nuget包HttpClient。并使用HttpClient而不是WebClient。这个HttpClient支持异步并等待甚至在wp7上。可以让它轻松工作。

nuget package for httpclient

示例代码:

string api = "/api/example/?id=abc";
var client = new HttpClient();
client.BaseAddress = new Uri("http://localhost:0000/");

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue     
                                                  ("Basic", Convert.ToBase64String
                                                              (
                                                                  new Helpers().StringToAscii(Username, Password)      
                                                              )
                                                   );
var resultString = await client.GetStringAsync(api);

希望这有帮助。