13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

Windows8.1之网络

对于所有受支持的语言使用更简单的 HTTP 实现,更方便的应用通信,面向基于位置的移动方案而且用于开发通用连接应用的新 API。

创新互联公司为您提适合企业的网站设计 让您的网站在搜索引擎具有高度排名,让您的网站具备超强的网络竞争力!结合企业自身,进行网站设计及把握,最后结合企业文化和具体宗旨等,才能创作出一份性化解决方案。从网站策划到网站设计、成都做网站, 我们的网页设计师为您提供的解决方案。

Windows 8.1 Preview 中的新特性或更新

新的 HTTP 客户端 API

Windows 8.1 Preview 中引入了 Windows.Web.Http, 即用于连接到 HTTP 的 Windows 应用和代表性状态传输 (REST) Web 服务的 Windows 运行时命名空间。 这个新 API 在所有支持语言中提供了对 Windows 8 所有功能的支持,并替代了最初为 Windows 8 发布的 HTTP API。

对于基本的请求操作,新 API 有一个简单的接口来处理最常见的任务,并为身份验证 (AUTH) 提供了适用于大多数方案的合理的默认设置。对于较为复杂的 HTTP 操作,更多的功能包括:

Windows.Web.Http.Headers 命名空间支持创建 HTTP 标头和 Cookie,然后再将生成的 HTTP 标头和 Cookie 作为属性与 HttpRequestMessageHttpResponseMessage 对象相关联。

以下示例代码显示了如何使用新的 API 创建一个基本的 HTTP GET 请求,进而通过新的 API 以字符串的形式获得 Web 服务器的内容。

JavaScript:

 
 
 
  1. var uri = new Uri("http://example.com/datalist.aspx"); 
  2. var httpClient = new HttpClient(); 
  3.  
  4. // Always catch network exceptions for async methods. 
  5.     httpClient.GetStringAsync (uri).done(function () { 
  6.             // Get completed operation. 
  7.        }, onError); 
  8.  
  9.  
  10. function onError(reason) { 
  11.     // Details in reason.Message and ex.HResult.        

C++:

 
 
 
  1. using namespace Windows::Foundation; 
  2. using namespace Windows::Web::Http; 
  3.  
  4. uri = ref new Uri("http://example.com/datalist.aspx"); 
  5. httpClient = ref new HttpClient(); 
  6.  
  7. // Always network exceptions for async methods. 
  8. try  
  9.     httpClient->GetStringAsync (uri); 
  10. catch  
  11.     // Details in ex.Message and ex.HResult.        

C# :

 
 
 
  1. using System; 
  2. using Windows.Foundation; 
  3. using Windows.Web.Http; 
  4.  
  5. var uri = new Uri("http://example.com/datalist.aspx"); 
  6. var httpClient = new HttpClient(); 
  7.  
  8. // Always catch network exceptions for async methods. 
  9. try  
  10.     var result = await httpClient.GetStringAsync (uri); 
  11. catch  
  12.     // Details in ex.Message and ex.HResult.        

自定义 HTTP 请求筛选器

通过受新 Windows.Web.Http.Filters 命名空间支持的 Web 请求筛选器模型,生成适用于以下特定连接和安全方案的 Web 请求将更加简单:

通常情况下,处理请求期间预期可能会出现的一个网络或安全状况很容易,但要处理多个网络或安全状况可能就比较困难。 你可以使用这个新 API 来创建一些简单的筛选器,然后再根据需要将它们链接起来。这样你就能够针对预期可能会出现的复杂情况开发出一些 Web 请求功能,而无需开发非常复杂的程序。

HttpClient 是用于通过 HTTP 发送和接收请求的主类。 它使用 HttpBaseProtocolFilter 类来确定如何发送和接收数据。所以 HttpBaseProtocolFilter 在逻辑上是所有自定义筛选器链的结尾。每个 HttpClient 实例都可以有一个不同的筛选器链或管道,如下所示。

若要编写一个自定义筛选器,你需要创建一个自定义版本的 IHttpFilter 接口。使用 IHttpFilter.SendRequestAsync 方法来指定筛选器的工作方式。你可以使用 C#(或 Visual Basic .NET)或 C++ 来编写筛选器。这些筛选器可以在 Windows 运行时支持的所有语言中调用和使用。

#p#

以下是向 HTTP 请求和响应添加自定义标头的筛选器的示例代码。

 
 
 
  1. public class PlugInFilter : IHttpFilter { 
  2.     private IHttpFilter innerFilter; 
  3.  
  4.     public PlugInFilter(IHttpFilter innerFilter) { 
  5.         if (innerFilter == null) { 
  6.             throw new ArgumentException("innerFilter cannot be null."); 
  7.         } 
  8.         this.innerFilter = innerFilter; 
  9.     } 
  10.  
  11.     public IAsyncOperationWithProgress SendRequestAsync(HttpRequestMessage request) { 
  12.         return AsyncInfo.Run(async (cancellationToken, progress) => 
  13.         { 
  14.             request.Headers.Add("Custom-Header", "CustomRequestValue"); 
  15.             HttpResponseMessage response = await innerFilter.SendRequestAsync(request).AsTask(cancellationToken, progress); 
  16.  
  17.             cancellationToken.ThrowIfCancellationRequested(); 
  18.  
  19.             response.Headers.Add("Custom-Header", "CustomResponseValue"); 
  20.         return response; 
  21.         }); 
  22.     } 
  23.  
  24.     public void Dispose() { 
  25.         innerFilter.Dispose(); 
  26.         GC.SuppressFinalize(this); 
  27.     } 

若要使用这个筛选器,请在创建新 HttpClient 对象时将其接口传递到 HttpClient(IHttpFilter) 构造函数。若要设置一个筛选器链,请将新筛选器链接到之前的筛选器以及位于结尾处的 HttpBaseProtocolFilter 对象。

以下示例代码显示如何使用自定义筛选器创建一个 HttpClient 对象。

 
 
 
  1. internal static void CreateHttpClient(ref HttpClient httpClient) 
  2.     if (httpClient != null) { 
  3.         httpClient.Dispose(); 
  4.     } 
  5.  
  6.     // Extend HttpClient by chaining multiple filters together 
  7.     // and then providing HttpClient with the configured filter pipeline. 
  8.     var basefilter = new HttpBaseProtocolFilter(); 
  9.  
  10.     // Adds a custom header to every request and response message. 
  11.     var myfilter = new PlugInFilter(basefilter); 
  12.     httpClient = new HttpClient(myfilter); 
  13.  

后台传输更新

Windows 8.1 Preview 中引入了对 Windows.Networking.BackgroundTransfer 的更新,进一步为开发者简化了下载和上载文件的过程,从而增强了最终用户的体验。

对连接待机方案的实时通信支持

后台网络现在允许 Windows 锁屏界面上的应用接收网络数据包,即使由于设备处于低能耗状态(如连接待机)导致应用不再运行时也是如此。更新包括:

连接待机更新

连接待机是 Windows 设备所具备的一种特殊电源状态。它允许应用在设备屏幕关闭,以及设备处于待机(低能耗)状态时执行有限的连接任务。实时通信和后台网络仅在设备的网络适配器支持时才使用连接待机功能。

Windows 8.1 Preview 中引入了这些连接待机更新,以便你的应用可以提供可在设备的整个生命周期内均能予以响应的连接体验。

Geofence 支持

Windows 8.1 Preview 中引入了对“地理围栏”的支持。 地理围栏允许应用以某个感兴趣的地理位置为圆点定义一个范围,并让系统在运行应用的设备进入或退出这个区域时向应用发出警报。有了这个对 Windows 地理功能的更新,你的应用可以在好友位于附近时通知用户,向离开单位或离开家的用户发送提醒,或在用户位于某些商店附近时显示优惠券。

通过 Windows 8.1 Preview 中的地理围栏功能,你可以完成以下操作:

Windows.Devices.Geolocation.Geofencing 命名空间中包含在使用地理围栏功能时所需的类。总体来说就是,你可以创建一个或多个定义感兴趣区域和通知条件的 Geofence 对象。然后你的应用必须处理设备进入或退出其中一个所定义的区域时发生的事件。 你可以之后对应用进行测试,方法是使用仿真程序来模拟设备进入和退出地理围栏时的运动。

Wi-Fi Direct 支持

你可以使用新的 WiFiDirectDevice 类来枚举无线范围内的 WiFi Direct 设备列表。 可以使用你的用户设置的“设备”部分中的“添加设备”功能将这些设备与你的电脑相关联。然后,你的应用就可以创建与范围内的任何 Wi-Fi Direct 设备的网络套接字连接。Wi-Fi Direct 是一种使用与 Wi-Fi 相同范围的高带宽传输。 如果能使用多媒体共享或高性能的连接游戏,将是一种非常卓越的享受。有关详细信息,请参阅 Windows 运行时 API 中的 Windows.Devices.WifiDirect 命名空间。

Note  你必须在应用部件清单文件中启用邻近感应功能,才能使用 Wi-Fi Direct API。


网站名称:Windows8.1之网络
网页链接:http://cdbrznjsb.com/article/coggdeg.html

其他资讯

让你的专属顾问为你服务