2013-08-20 60 views
0

我需要通過HTTPS發送經過壓縮的字節數組。我搜索了網頁,只有我能找到的東西是SharpGIS.GZipWebClient。通過HTTPS發送經過壓縮的數據

但是,問題是 - 此第三方解決方案僅適用於WebClient,它允許您只發送字符串數據。

(我在Windows Phone 8在大多數情況下WebClient的方法是不存在的。)

任何想法來解決這個問題?

編輯:

這是我嘗試使用HTTPS SharpGIS在POST JSON數據;

  WebClient webClient = new SharpGIS.GZipWebClient(); 
      webClient.Headers["Accept-Encoding"] = "gzip"; 
      var uri = new Uri(pUrl, UriKind.Absolute); 
      webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted); 
      webClient.UploadStringTaskAsync(uri, jsonAsString); 

但它不壓縮字符串(如使用OpenWriteSync方法)。

+0

WebClient也允許你寫二進制數據:http://msdn.microsoft.com/en-us/library/ms144218(v=vs.95).aspx –

+0

我非常抱歉,我忘了提及我在Windows Phone 8上。在Windows Phone 8 SDK中,這些方法不包括在內。 – zgulser

+1

你錯了,Windows Phone 8中包含'OpenWriteAsync'方法 –

回答

0

您在OpenWriteCompleted處理程序寫入數據後,這樣的:

void webClient_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e) 
{ 
    Stream s = e.Result; 
    s.Write(jsonAsByteArray, 0, jsonAsByteArray.Length); 
    s.Flush(); 
    s.Close(); 
} 

您還應該添加相應的錯誤處理。

+0

是的,我看到了,但我想說的是SharpGIS.GZipWebClient不支持WebClient的OpenWrite ...,因爲它在這裏陳述; http://www.sharpgis.net/post/2011/05/29/GZIP-Compressed-Web-Requests-in-WP7.aspx – zgulser

+0

請參閱編輯。 – zgulser

+0

你應該看看Visual Studio的NuGet包。有一個新的HttpClient和一個Microsoft壓縮包的軟件包。我認爲壓縮包仍然是測試版,但如果我需要壓縮,我會使用它。 – Jon