【发布时间】:2014-01-11 21:29:38
【问题描述】:
我是 Web API 和 Windows Store App 8.1 的新手。我正在开发一个与 Web API 通信的 Windows 应用商店应用程序。当我尝试编写以下代码时:
// server:53452/api/demo?ReportingMonth=10&ReportingYear=2013"
using (HttpClient httpClient = new HttpClient())
{
using (HttpResponseMessage response = await httpClient.GetAsync(new Uri("address")))
{
string result = await response.Content.ReadAsStringAsync();
var prodt = JsonConvert.DeserializeObject<ObservableCollection<Statuses>>(result);
return prodt;
}
}
我看到 HttpClient 位于 Windows.Web.Http 和 System.Net.Http 中。我应该使用哪个命名空间?
如果我选择 System.Net.Http 命名空间,当我尝试调用启用了 Windows 身份验证的 Web API 时,光标将不会返回到客户端,仍处于未知状态。不知道为什么我没有收到回复。
address = "abc.com:53452/api/demo?ReportingMonth=10&ReportingYear=2013"
using (HttpResponseMessage response = await httpClient.GetAsync(new Uri(address)))
如果我使用Windows.Web.Http 中的HttpClient,Windows 商店应用程序会要求我输入凭据,即使我正确输入了凭据,系统仍会提示输入凭据。谁能解释为什么会这样?
【问题讨论】:
-
Here's the HttpClient app sample。附带说明一下,还有第三个版本,Microsoft.Net.Http,它是可移植的。
-
下面的链接指出,Windows 商店应用程序应该从 8.1 开始使用 Windows.Web.Http。 msdn.microsoft.com/en-us/library/windows/apps/hh781239.aspx
-
如何执行 Windows 身份验证以从 Windows Store 调用 WEB API,我之前用于 System.NET.HtpClient //HttpClientHandler handler = new HttpClientHandler() //{ // Credentials = CredentialCache.DefaultCredentials / /};如何在 windows.web.httpclient 中做同样的事情
标签: asp.net-web-api windows-store-apps httpclient windows-8.1