Xamarin Forms - C# - HttpUtility.ParseQueryString - 自动格式化字符串?

Xamarin Forms - C# - HttpUtility.ParseQueryString - automatically formats a string?

我正在使用 ParseQueryString 运算符执行基本 API 请求。

当我通过 ParseQueryString 传递特定值时,它会自动对其进行格式化。

例如,如果我通过 ParseQueryString 传递 example@example.com,returned 结果将是:

example%40example.com

服务器会 return 空值。

但是如果传递的值为:

example@example.com

然后就可以了

我知道查询字符串通常没有“@”,但有没有办法将“@”传递给 API 服务器?

这是我的代码:

var client = new HttpClient();

var queryString = HttpUtility.ParseQueryString(string.Empty);

queryString["email"] = LoggedIn.LoggedInEmail;

var apiuri = "https://example.com/wp-json/wc/v3/customers?" + queryString;

Console.WriteLine(apiuri);

returned API 是:

https://example.com/wp-json/wc/v3/customers?email=example%40example.com

什么时候应该这样显示:

https://example.com/wp-json/wc/v3/customers?email=example@example.com

生成apiuri后尝试使用HttpUtility.UrlDecode方法。

var client = new HttpClient();

var queryString = HttpUtility.ParseQueryString(string.Empty);

queryString["email"] = LoggedIn.LoggedInEmail;

var apiuri = "https://example.com/wp-json/wc/v3/customers?" + queryString;

var url = HttpUtility.UrlDecode(apiuri,Encoding.UTF8);
Console.WriteLine(url);