【发布时间】:2021-01-14 20:43:53
【问题描述】:
我有一种感觉,我正在重写一些必须存在的东西。有没有更好的方法来获取和拆分 http 查询的所有参数。
我有这个问题
http://localhost:59289/api/Company/Example/Sequence/01234567890128/NextRange?Quantity=5000&Order=O1234
为了简单起见,假设我想将这两个参数保存为 JSON 字符串中的元数据。参数可以是其他参数。参数列表是动态的。我可以让用户选择他想要传递的参数,系统会将它们作为元数据以 JSON 格式保存在我的数据库中。
在 Visual Studio 的即时窗口中,我可以对此进行测试:
Request.RequestUri.Query
"?Quantity=5000&Order=O1234"
Request.RequestUri.Query 是一个字符串。然后我可以用“&”拆分它并创建一个字符串字典,然后将其序列化为 JSON。但我很惊讶我必须自己分开这个。有没有更好的方法来查询它们请求所有值的所有参数键?
我检查了这个https://en.wikipedia.org/wiki/URL
解决方案 1 ----------
我已经试过了
var query = @"?Quantity=5000&Order=O1234";
var p = query
.TrimStart('?')
.Split('&')
.Select(y => y.Split('='))
.SelectMany(y => new Dictionary<string, string>()
{
{ y[0], y[1] }
});
这是我的手动解决方案。如果我的字符串为空,我会得到一个异常。
【问题讨论】:
标签: c# http url asp.net-web-api