标签: winrt-httpclient

为什么System.Exception类型的Windows.Web.Http.HttpClient引发网络异常而不是更具体的东西?

每当我使用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

6
推荐指数
1
解决办法
1371
查看次数

Windows.Web.Http.HttpClient + WEB API Windows身份验证

我使用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

3
推荐指数
1
解决办法
4058
查看次数