-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中傳遞正確的字符串?
我建議你使用Base64編碼,數據與網址安全base64 decodabet。 –
我該怎麼做? – adryr
那麼我會先做一些研究。只搜索SO發現https://stackoverflow.com/questions/26353710/how-to-achieve-base64-url-safe-encoding-in-c –