2015-12-15 54 views
-1

我需要通過一個URL傳遞一個字節數組。傳遞一個url編碼的字節數組

string ergebnis = HttpUtility.UrlEncode(array); 

結果是以下字符串:所以我與UrlEncode法這樣的編碼它%00%00%00%00%00%25%b8j

現在,當我在這樣http://localhost:51980/api/Insects?Version=%00%00%00%00%00%25%b8j

一個URL通過這個字符串這是我的Get功能:

 public List<TaxonDiagnosis> Get([FromUri] string version) 
     { 
      List<TaxonDiagnosis> result = new List<TaxonDiagnosis>(); 

      result = db.TaxonDiagnosis.ToList(); 

      byte[] array = HttpUtility.UrlDecodeToBytes(version); 

      if (version != null) 
       result = db.GetTaxonDiagnosis(array).ToList(); 

      return result; 
     } 

問題是,version的值ISN 't %00%00%00%00%00%25%b8j。相反,這是\0\0\0\0\0%�j。當我嘗試再次將它解碼爲byte array時,這當然會導致問題。

如何在Url中傳遞正確的字符串?

+2

我建議你使用Base64編碼,數據與網址安全base64 decodabet。 –

+0

我該怎麼做? – adryr

+1

那麼我會先做一些研究。只搜索SO發現https://stackoverflow.com/questions/26353710/how-to-achieve-base64-url-safe-encoding-in-c –

回答