我需要通过URL传递一个字节数组。所以我使用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
现在,当我在像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
。当我尝试再次将其解码为public function test_curl()
{
//step1
$cSession = curl_init();
//step2
curl_setopt($cSession,CURLOPT_URL,"https://www.google.com/search?q=hehe");
curl_setopt($cSession,CURLOPT_RETURNTRANSFER,true);
//step3
$result=curl_exec($cSession);
//step4
curl_close($cSession);
//step5
echo $result;
}
时,这当然会产生问题。
如何在Url中传递正确的字符串?
答案 0 :(得分:0)
正如Jon Skeet所建议的,我使用URL安全的base64 decodabet对数组进行编码,如下文所示:How to achieve Base64 URL safe encoding in C#?