掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
對于所有受支持的語言使用更簡單的 HTTP 實(shí)現(xiàn),更方便的應(yīng)用通信,面向基于位置的移動(dòng)方案而且用于開發(fā)通用連接應(yīng)用的新 API。

創(chuàng)新互聯(lián)公司為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站, 我們的網(wǎng)頁設(shè)計(jì)師為您提供的解決方案。
Windows 8.1 Preview 中的新特性或更新
新的 HTTP 客戶端 API
Windows 8.1 Preview 中引入了 Windows.Web.Http, 即用于連接到 HTTP 的 Windows 應(yīng)用和代表性狀態(tài)傳輸 (REST) Web 服務(wù)的 Windows 運(yùn)行時(shí)命名空間。 這個(gè)新 API 在所有支持語言中提供了對 Windows 8 所有功能的支持,并替代了最初為 Windows 8 發(fā)布的 HTTP API。
對于基本的請求操作,新 API 有一個(gè)簡單的接口來處理最常見的任務(wù),并為身份驗(yàn)證 (AUTH) 提供了適用于大多數(shù)方案的合理的默認(rèn)設(shè)置。對于較為復(fù)雜的 HTTP 操作,更多的功能包括:
Windows.Web.Http.Headers 命名空間支持創(chuàng)建 HTTP 標(biāo)頭和 Cookie,然后再將生成的 HTTP 標(biāo)頭和 Cookie 作為屬性與 HttpRequestMessage 和 HttpResponseMessage 對象相關(guān)聯(lián)。
以下示例代碼顯示了如何使用新的 API 創(chuàng)建一個(gè)基本的 HTTP GET 請求,進(jìn)而通過新的 API 以字符串的形式獲得 Web 服務(wù)器的內(nèi)容。
JavaScript:
- var uri = new Uri("http://example.com/datalist.aspx");
- var httpClient = new HttpClient();
- // Always catch network exceptions for async methods.
- httpClient.GetStringAsync (uri).done(function () {
- // Get completed operation.
- }, onError);
- function onError(reason) {
- // Details in reason.Message and ex.HResult.
- }
C++:
- using namespace Windows::Foundation;
- using namespace Windows::Web::Http;
- uri = ref new Uri("http://example.com/datalist.aspx");
- httpClient = ref new HttpClient();
- // Always network exceptions for async methods.
- try
- {
- httpClient->GetStringAsync (uri);
- }
- catch
- {
- // Details in ex.Message and ex.HResult.
- }
C# :
- using System;
- using Windows.Foundation;
- using Windows.Web.Http;
- var uri = new Uri("http://example.com/datalist.aspx");
- var httpClient = new HttpClient();
- // Always catch network exceptions for async methods.
- try
- {
- var result = await httpClient.GetStringAsync (uri);
- }
- catch
- {
- // Details in ex.Message and ex.HResult.
- }
自定義 HTTP 請求篩選器
通過受新 Windows.Web.Http.Filters 命名空間支持的 Web 請求篩選器模型,生成適用于以下特定連接和安全方案的 Web 請求將更加簡單:
通常情況下,處理請求期間預(yù)期可能會出現(xiàn)的一個(gè)網(wǎng)絡(luò)或安全狀況很容易,但要處理多個(gè)網(wǎng)絡(luò)或安全狀況可能就比較困難。 你可以使用這個(gè)新 API 來創(chuàng)建一些簡單的篩選器,然后再根據(jù)需要將它們鏈接起來。這樣你就能夠針對預(yù)期可能會出現(xiàn)的復(fù)雜情況開發(fā)出一些 Web 請求功能,而無需開發(fā)非常復(fù)雜的程序。
HttpClient 是用于通過 HTTP 發(fā)送和接收請求的主類。 它使用 HttpBaseProtocolFilter 類來確定如何發(fā)送和接收數(shù)據(jù)。所以 HttpBaseProtocolFilter 在邏輯上是所有自定義篩選器鏈的結(jié)尾。每個(gè) HttpClient 實(shí)例都可以有一個(gè)不同的篩選器鏈或管道,如下所示。
若要編寫一個(gè)自定義篩選器,你需要?jiǎng)?chuàng)建一個(gè)自定義版本的 IHttpFilter 接口。使用 IHttpFilter.SendRequestAsync 方法來指定篩選器的工作方式。你可以使用 C#(或 Visual Basic .NET)或 C++ 來編寫篩選器。這些篩選器可以在 Windows 運(yùn)行時(shí)支持的所有語言中調(diào)用和使用。
#p#
以下是向 HTTP 請求和響應(yīng)添加自定義標(biāo)頭的篩選器的示例代碼。
- public class PlugInFilter : IHttpFilter {
- private IHttpFilter innerFilter;
- public PlugInFilter(IHttpFilter innerFilter) {
- if (innerFilter == null) {
- throw new ArgumentException("innerFilter cannot be null.");
- }
- this.innerFilter = innerFilter;
- }
- public IAsyncOperationWithProgress
SendRequestAsync(HttpRequestMessage request) { - return AsyncInfo.Run
(async (cancellationToken, progress) => - {
- request.Headers.Add("Custom-Header", "CustomRequestValue");
- HttpResponseMessage response = await innerFilter.SendRequestAsync(request).AsTask(cancellationToken, progress);
- cancellationToken.ThrowIfCancellationRequested();
- response.Headers.Add("Custom-Header", "CustomResponseValue");
- return response;
- });
- }
- public void Dispose() {
- innerFilter.Dispose();
- GC.SuppressFinalize(this);
- }
- }
若要使用這個(gè)篩選器,請?jiān)趧?chuàng)建新 HttpClient 對象時(shí)將其接口傳遞到 HttpClient(IHttpFilter) 構(gòu)造函數(shù)。若要設(shè)置一個(gè)篩選器鏈,請將新篩選器鏈接到之前的篩選器以及位于結(jié)尾處的 HttpBaseProtocolFilter 對象。
以下示例代碼顯示如何使用自定義篩選器創(chuàng)建一個(gè) HttpClient 對象。
- internal static void CreateHttpClient(ref HttpClient httpClient)
- {
- if (httpClient != null) {
- httpClient.Dispose();
- }
- // Extend HttpClient by chaining multiple filters together
- // and then providing HttpClient with the configured filter pipeline.
- var basefilter = new HttpBaseProtocolFilter();
- // Adds a custom header to every request and response message.
- var myfilter = new PlugInFilter(basefilter);
- httpClient = new HttpClient(myfilter);
- }
后臺傳輸更新
Windows 8.1 Preview 中引入了對 Windows.Networking.BackgroundTransfer 的更新,進(jìn)一步為開發(fā)者簡化了下載和上載文件的過程,從而增強(qiáng)了最終用戶的體驗(yàn)。
對連接待機(jī)方案的實(shí)時(shí)通信支持
后臺網(wǎng)絡(luò)現(xiàn)在允許 Windows 鎖屏界面上的應(yīng)用接收網(wǎng)絡(luò)數(shù)據(jù)包,即使由于設(shè)備處于低能耗狀態(tài)(如連接待機(jī))導(dǎo)致應(yīng)用不再運(yùn)行時(shí)也是如此。更新包括:
連接待機(jī)是 Windows 設(shè)備所具備的一種特殊電源狀態(tài)。它允許應(yīng)用在設(shè)備屏幕關(guān)閉,以及設(shè)備處于待機(jī)(低能耗)狀態(tài)時(shí)執(zhí)行有限的連接任務(wù)。實(shí)時(shí)通信和后臺網(wǎng)絡(luò)僅在設(shè)備的網(wǎng)絡(luò)適配器支持時(shí)才使用連接待機(jī)功能。
Windows 8.1 Preview 中引入了這些連接待機(jī)更新,以便你的應(yīng)用可以提供可在設(shè)備的整個(gè)生命周期內(nèi)均能予以響應(yīng)的連接體驗(yàn)。
Windows 8.1 Preview 中引入了對“地理圍欄”的支持。 地理圍欄允許應(yīng)用以某個(gè)感興趣的地理位置為圓點(diǎn)定義一個(gè)范圍,并讓系統(tǒng)在運(yùn)行應(yīng)用的設(shè)備進(jìn)入或退出這個(gè)區(qū)域時(shí)向應(yīng)用發(fā)出警報(bào)。有了這個(gè)對 Windows 地理功能的更新,你的應(yīng)用可以在好友位于附近時(shí)通知用戶,向離開單位或離開家的用戶發(fā)送提醒,或在用戶位于某些商店附近時(shí)顯示優(yōu)惠券。
通過 Windows 8.1 Preview 中的地理圍欄功能,你可以完成以下操作:
Windows.Devices.Geolocation.Geofencing 命名空間中包含在使用地理圍欄功能時(shí)所需的類??傮w來說就是,你可以創(chuàng)建一個(gè)或多個(gè)定義感興趣區(qū)域和通知條件的 Geofence 對象。然后你的應(yīng)用必須處理設(shè)備進(jìn)入或退出其中一個(gè)所定義的區(qū)域時(shí)發(fā)生的事件。 你可以之后對應(yīng)用進(jìn)行測試,方法是使用仿真程序來模擬設(shè)備進(jìn)入和退出地理圍欄時(shí)的運(yùn)動(dòng)。
Wi-Fi Direct 支持
你可以使用新的 WiFiDirectDevice 類來枚舉無線范圍內(nèi)的 WiFi Direct 設(shè)備列表。 可以使用你的用戶設(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ì)信息,請參閱 Windows 運(yùn)行時(shí) API 中的 Windows.Devices.WifiDirect 命名空間。
Note 你必須在應(yīng)用部件清單文件中啟用鄰近感應(yīng)功能,才能使用 Wi-Fi Direct API。

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流