c# - Xamarin Forms - C# - HttpUtility.ParseQueryString - 自动格式化字符串?
问题描述
我正在使用 ParseQueryString 运算符执行基本 API 请求。
当我通过 ParseQueryString 传递特定值时,它会自动对其进行格式化。
例如,如果我通过 ParseQueryString 传递 example@example.com,则返回的结果将是:
示例%40example.com
服务器将返回一个空值。
但是,如果传递的值为:
示例@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);
返回的 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
解决方案
HttpUtility.UrlDecode
生成apiuri后尝试使用方法。
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);
推荐阅读
- sql - 如何将值插入特定列?
- graph - 如何为 Ultimate Thread 组创建场景
- python - 在 Python 中,如何记录完整的模块路径、类和函数名?
- java - 在 Java 中存储 10^12 位和检查单个数字的有效方法
- regex - Microsoft VBS 正则表达式访问查询
- c++ - 如何检查像素游戏引擎中是否按下了任何键
- abap - 单选按钮和复选框,例如 Dynpro OO 控件?
- c# - 如何在具有单例模式的 .NET 库中使用 ILogger 抽象?
- python - 在 Ubuntu 18.04 上降级预安装的 Python 版本
- php - 问:如何将3个表数据显示成1个表?