传递url编码的字节数组
本文关键字:字节数 数组 字节 url 编码 传递 | 更新日期: 2023-09-27 18:26:54
我需要通过URL传递一个字节数组。所以我用UrlEncode
方法对它进行编码,如下所示:
string ergebnis = HttpUtility.UrlEncode(array);
结果是以下字符串:%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
的值不是%00%00%00%00%00%25%b8j
。相反,它是这个'0'0'0'0'0%�j
。当我再次尝试将其解码为byte array
时,这当然会引起问题。
如何在Url中传递正确的字符串?
正如Jon Skeet所建议的,我用一个URL安全的base64 decodabet对数组进行了编码,比如在这篇文章中:如何在C#中实现base64 URL安全编码?