自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows 8.1 之網(wǎng)絡(luò)

開(kāi)發(fā) 前端
對(duì)于所有受支持的語(yǔ)言使用更簡(jiǎn)單的 HTTP 實(shí)現(xiàn),更方便的應(yīng)用通信,面向基于位置的移動(dòng)方案而且用于開(kāi)發(fā)通用連接應(yīng)用的新 API。

對(duì)于所有受支持的語(yǔ)言使用更簡(jiǎn)單的 HTTP 實(shí)現(xiàn),更方便的應(yīng)用通信,面向基于位置的移動(dòng)方案而且用于開(kāi)發(fā)通用連接應(yīng)用的新 API。

Windows 8.1 Preview 中的新特性或更新

  • 新的 HTTP 客戶(hù)端 API
  • 自定義 HTTP 請(qǐng)求篩選器
  • 后臺(tái)傳輸更新
  • 實(shí)時(shí)通信更新
  • 連接待機(jī)更新
  • Geofence 支持
  • 直接 Wi-Fi

新的 HTTP 客戶(hù)端 API

Windows 8.1 Preview 中引入了 Windows.Web.Http, 即用于連接到 HTTP 的 Windows 應(yīng)用和代表性狀態(tài)傳輸 (REST) Web 服務(wù)的 Windows 運(yùn)行時(shí)命名空間。 這個(gè)新 API 在所有支持語(yǔ)言中提供了對(duì) Windows 8 所有功能的支持,并替代了最初為 Windows 8 發(fā)布的 HTTP API。

對(duì)于基本的請(qǐng)求操作,新 API 有一個(gè)簡(jiǎn)單的接口來(lái)處理最常見(jiàn)的任務(wù),并為身份驗(yàn)證 (AUTH) 提供了適用于大多數(shù)方案的合理的默認(rèn)設(shè)置。對(duì)于較為復(fù)雜的 HTTP 操作,更多的功能包括:

  • 執(zhí)行常見(jiàn)操作(DELETE、GET、PUT 和 POST)的方法
  • 支持常見(jiàn)的身份驗(yàn)證設(shè)置和模式
  • 訪(fǎng)問(wèn)有關(guān)傳輸?shù)陌踩捉幼謱?(SSL) 詳細(xì)信息
  • 在高級(jí)應(yīng)用中包含自定義篩選器的功能
  • 獲取、設(shè)置和刪除 Cookie 的功能
  • 異步方法上提供的 HTTP 請(qǐng)求進(jìn)度信息

Windows.Web.Http.Headers 命名空間支持創(chuàng)建 HTTP 標(biāo)頭和 Cookie,然后再將生成的 HTTP 標(biāo)頭和 Cookie 作為屬性與 HttpRequestMessageHttpResponseMessage 對(duì)象相關(guān)聯(lián)。

以下示例代碼顯示了如何使用新的 API 創(chuàng)建一個(gè)基本的 HTTP GET 請(qǐng)求,進(jìn)而通過(guò)新的 API 以字符串的形式獲得 Web 服務(wù)器的內(nèi)容。

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 請(qǐng)求篩選器

通過(guò)受新 Windows.Web.Http.Filters 命名空間支持的 Web 請(qǐng)求篩選器模型,生成適用于以下特定連接和安全方案的 Web 請(qǐng)求將更加簡(jiǎn)單:

  • 處理身份驗(yàn)證
  • 在按流量計(jì)費(fèi)的網(wǎng)絡(luò)上限制訪(fǎng)問(wèn)
  • 支持現(xiàn)代化編程技術(shù),如 mocking
  • 連接失敗后自動(dòng)重試

通常情況下,處理請(qǐng)求期間預(yù)期可能會(huì)出現(xiàn)的一個(gè)網(wǎng)絡(luò)或安全狀況很容易,但要處理多個(gè)網(wǎng)絡(luò)或安全狀況可能就比較困難。 你可以使用這個(gè)新 API 來(lái)創(chuàng)建一些簡(jiǎn)單的篩選器,然后再根據(jù)需要將它們鏈接起來(lái)。這樣你就能夠針對(duì)預(yù)期可能會(huì)出現(xiàn)的復(fù)雜情況開(kāi)發(fā)出一些 Web 請(qǐng)求功能,而無(wú)需開(kāi)發(fā)非常復(fù)雜的程序。

HttpClient 是用于通過(guò) HTTP 發(fā)送和接收請(qǐng)求的主類(lèi)。 它使用 HttpBaseProtocolFilter 類(lèi)來(lái)確定如何發(fā)送和接收數(shù)據(jù)。所以 HttpBaseProtocolFilter 在邏輯上是所有自定義篩選器鏈的結(jié)尾。每個(gè) HttpClient 實(shí)例都可以有一個(gè)不同的篩選器鏈或管道,如下所示。

HTTP 篩選器鏈圖示

若要編寫(xiě)一個(gè)自定義篩選器,你需要?jiǎng)?chuàng)建一個(gè)自定義版本的 IHttpFilter 接口。使用 IHttpFilter.SendRequestAsync 方法來(lái)指定篩選器的工作方式。你可以使用 C#(或 Visual Basic .NET)或 C++ 來(lái)編寫(xiě)篩選器。這些篩選器可以在 Windows 運(yùn)行時(shí)支持的所有語(yǔ)言中調(diào)用和使用。

#p#

以下是向 HTTP 請(qǐng)求和響應(yīng)添加自定義標(biāo)頭的篩選器的示例代碼。

  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<HttpResponseMessage, HttpProgress> SendRequestAsync(HttpRequestMessage request) { 
  12.         return AsyncInfo.Run<HttpResponseMessage, HttpProgress>(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.     } 

若要使用這個(gè)篩選器,請(qǐng)?jiān)趧?chuàng)建新 HttpClient 對(duì)象時(shí)將其接口傳遞到 HttpClient(IHttpFilter) 構(gòu)造函數(shù)。若要設(shè)置一個(gè)篩選器鏈,請(qǐng)將新篩選器鏈接到之前的篩選器以及位于結(jié)尾處的 HttpBaseProtocolFilter 對(duì)象。

以下示例代碼顯示如何使用自定義篩選器創(chuàng)建一個(gè) HttpClient 對(duì)象。

  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.  

后臺(tái)傳輸更新

Windows 8.1 Preview 中引入了對(duì) Windows.Networking.BackgroundTransfer 的更新,進(jìn)一步為開(kāi)發(fā)者簡(jiǎn)化了下載和上載文件的過(guò)程,從而增強(qiáng)了最終用戶(hù)的體驗(yàn)。

  • 新的 BackgroundTransferGroup 類(lèi)可簡(jiǎn)化你的應(yīng)用創(chuàng)建這些組的過(guò)程,還能簡(jiǎn)化以并行、串行或基于優(yōu)先級(jí)的方式完成下載和上載的過(guò)程。例如,當(dāng)用戶(hù)決定下載并觀看某個(gè)執(zhí)播電視連續(xù)劇中的劇集時(shí),你的應(yīng)用現(xiàn)在可以?xún)?yōu)先下載連續(xù)劇中最早的劇集,或者讓用戶(hù)選擇先下載哪個(gè)劇集。
  • 你的應(yīng)用現(xiàn)在可以更新其動(dòng)態(tài)磁貼或使用 toast 通知為用戶(hù)提供狀態(tài)信息。你可以使用 BackgroundDownloaderBackgroundUploader 類(lèi)中的新方法來(lái)配置這些通知。
  • 如果下載可以在中斷后繼續(xù),并且持續(xù)時(shí)間可能超過(guò)兩分鐘,則后臺(tái)傳輸功能現(xiàn)在可以自動(dòng)將下載切換到***網(wǎng)絡(luò)(例如,不受限制的網(wǎng)絡(luò))。

對(duì)連接待機(jī)方案的實(shí)時(shí)通信支持

后臺(tái)網(wǎng)絡(luò)現(xiàn)在允許 Windows 鎖屏界面上的應(yīng)用接收網(wǎng)絡(luò)數(shù)據(jù)包,即使由于設(shè)備處于低能耗狀態(tài)(如連接待機(jī))導(dǎo)致應(yīng)用不再運(yùn)行時(shí)也是如此。更新包括:

  • 對(duì)新 Windows.Web.Http API 的實(shí)時(shí)通信支持。
  • 支持免打擾時(shí)間,這是 Windows 8.1 Preview 中的一項(xiàng)新增功能。
  • IP 語(yǔ)音 (VoIP) 應(yīng)用的新通知功能,允許這些應(yīng)用在鎖屏?xí)r也能接聽(tīng)電話(huà)。
  • 四個(gè)硬件插槽支持大多數(shù)網(wǎng)絡(luò)設(shè)備上的連接待機(jī)。

連接待機(jī)更新

連接待機(jī)是 Windows 設(shè)備所具備的一種特殊電源狀態(tài)。它允許應(yīng)用在設(shè)備屏幕關(guān)閉,以及設(shè)備處于待機(jī)(低能耗)狀態(tài)時(shí)執(zhí)行有限的連接任務(wù)。實(shí)時(shí)通信和后臺(tái)網(wǎng)絡(luò)僅在設(shè)備的網(wǎng)絡(luò)適配器支持時(shí)才使用連接待機(jī)功能。

Windows 8.1 Preview 中引入了這些連接待機(jī)更新,以便你的應(yīng)用可以提供可在設(shè)備的整個(gè)生命周期內(nèi)均能予以響應(yīng)的連接體驗(yàn)。

  • 支持以太網(wǎng)和移動(dòng)寬帶網(wǎng)絡(luò)適配器
  • 支持為網(wǎng)絡(luò)適配器提供的更多硬件插槽(更多插槽意味著鎖屏界面上有更多的應(yīng)用能夠使用連接待機(jī))

Geofence 支持

Windows 8.1 Preview 中引入了對(duì)“地理圍欄”的支持。 地理圍欄允許應(yīng)用以某個(gè)感興趣的地理位置為圓點(diǎn)定義一個(gè)范圍,并讓系統(tǒng)在運(yùn)行應(yīng)用的設(shè)備進(jìn)入或退出這個(gè)區(qū)域時(shí)向應(yīng)用發(fā)出警報(bào)。有了這個(gè)對(duì) Windows 地理功能的更新,你的應(yīng)用可以在好友位于附近時(shí)通知用戶(hù),向離開(kāi)單位或離開(kāi)家的用戶(hù)發(fā)送提醒,或在用戶(hù)位于某些商店附近時(shí)顯示優(yōu)惠券。

通過(guò) Windows 8.1 Preview 中的地理圍欄功能,你可以完成以下操作:

  • 創(chuàng)建或刪除一個(gè)或多個(gè)“地理圍欄”或感興趣的區(qū)域
  • 設(shè)置通知,以便在進(jìn)入或離開(kāi)某個(gè)地理圍欄時(shí)進(jìn)行通知。
  • 通過(guò)使用新的后臺(tái)任務(wù) LocationTrigger 類(lèi)允許你的地理圍欄應(yīng)用在后臺(tái)運(yùn)行,并繼續(xù)獲取地理圍欄事件。
  • 允許你的應(yīng)用在位于鎖屏界面上時(shí)接收地理圍欄更新。

Windows.Devices.Geolocation.Geofencing 命名空間中包含在使用地理圍欄功能時(shí)所需的類(lèi)??傮w來(lái)說(shuō)就是,你可以創(chuàng)建一個(gè)或多個(gè)定義感興趣區(qū)域和通知條件的 Geofence 對(duì)象。然后你的應(yīng)用必須處理設(shè)備進(jìn)入或退出其中一個(gè)所定義的區(qū)域時(shí)發(fā)生的事件。 你可以之后對(duì)應(yīng)用進(jìn)行測(cè)試,方法是使用仿真程序來(lái)模擬設(shè)備進(jìn)入和退出地理圍欄時(shí)的運(yùn)動(dòng)。

Wi-Fi Direct 支持

你可以使用新的 WiFiDirectDevice 類(lèi)來(lái)枚舉無(wú)線(xiàn)范圍內(nèi)的 WiFi Direct 設(shè)備列表。 可以使用你的用戶(hù)設(shè)置的“設(shè)備”部分中的“添加設(shè)備”功能將這些設(shè)備與你的電腦相關(guān)聯(lián)。然后,你的應(yīng)用就可以創(chuàng)建與范圍內(nèi)的任何 Wi-Fi Direct 設(shè)備的網(wǎng)絡(luò)套接字連接。Wi-Fi Direct 是一種使用與 Wi-Fi 相同范圍的高帶寬傳輸。 如果能使用多媒體共享或高性能的連接游戲,將是一種非常卓越的享受。有關(guān)詳細(xì)信息,請(qǐng)參閱 Windows 運(yùn)行時(shí) API 中的 Windows.Devices.WifiDirect 命名空間。

Note  你必須在應(yīng)用部件清單文件中啟用鄰近感應(yīng)功能,才能使用 Wi-Fi Direct API。

 

責(zé)任編輯:陳四芳 來(lái)源: microsoft.com
相關(guān)推薦

2013-08-28 15:26:35

Windows8.1工具

2013-08-28 14:59:17

Windows8.1文件訪(fǎng)問(wèn)

2013-08-20 15:54:14

異步編程windows編程

2013-08-05 17:25:40

windows

2015-01-06 10:00:00

Windows 10

2014-03-18 17:45:01

Windows 8.1

2013-08-28 16:08:19

多媒體Windows8.1

2013-10-16 10:09:12

Windows 8.1

2013-12-04 10:51:02

Windows 8.1Windows 8

2013-10-21 10:07:30

微軟Windows 8.1理由

2013-04-01 14:15:03

Windows Blu

2013-09-03 13:42:34

Windows銀行

2014-07-11 10:23:54

2013-06-21 10:45:41

Windows 8.1

2013-10-28 13:26:41

Windows 8.1破解

2013-06-17 09:38:34

Windows 8.1

2013-12-02 10:25:28

Windows 8.1網(wǎng)絡(luò)問(wèn)題

2013-11-19 12:23:42

Windows 8.1PC

2013-09-09 10:42:17

Windows 8.1

2013-10-21 09:53:50

Windows 8.1微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)