每当我使用Windows.Web.Http.HttpClient类发出HTTP请求时,我总是处理这样的网络异常:
HttpResponseMessage response;
try
{
response = await httpClent.GetAsync(new Uri("http://www.microsoft.com"));
}
catch (Exception e)
{
// Most likely a network exception.
// Inspect e.HResult value to see what the specific error was.
}
Run Code Online (Sandbox Code Playgroud)
但是现在我将捕获所有异常,而不仅仅是网络异常,特别是如果try块不仅包含httpClient.GetAsync调用.
各种异常HRESULT已经在ABI层自动转换为适当的托管类型(例如,E_OUTOFMEMORY被投射到System.OutOfMemoryException),那么为什么网络异常不会以类似的方式进行投影?
c# windows-runtime windows-8.1 winrt-httpclient windows-phone-8.1
我使用Windows.Web.Http.HttpClient连接到我的WEB API.应用程序没有提示用户名和密码,但最近我通过将AuthorizeAttribute过滤器从Action级别移动到类级别来更改WEB API.现在我的Windows应用商店8.1应用程序提示用户ID和密码.请让我知道如何设置HttpClient不提示登录和密码.any1可以建议我,我需要添加标头到我的httpcleint
using(Windows.Web.Http.HttpClient httpClient = new Windows.Web.Http.HttpClient()){//添加用户代理头文件var headers = httpClient.DefaultRequestHeaders;
//从用户检查标头值的安全方法是TryParseAdd方法//由于我们知道这个标头没问题,我们使用ParseAdd会抛出一个带有错误值的异常 - http://msdn.microsoft. COM/EN-US /库/窗/应用/ dn440594.aspx
headers.UserAgent.ParseAdd("ie");
headers.UserAgent.ParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
using (var response = await httpClient.GetAsync(new Uri(url)))
Run Code Online (Sandbox Code Playgroud)
我没有看到发送默认凭据的方法.
asp.net-web-api windows-store-apps windows-8.1 winrt-httpclient