我正在使用NancyFx构建一个Web API,但是从URL获取参数时我遇到了一些问题。
我需要向API发送请求.../consumptions/hourly?from=1402012800000&tags=%171,1342%5D&to=1402099199000
并捕获参数的值:granularity,from,tags和to。我尝试了几个approches,没有一个工作。我试过,例如,
Get["consumptions/{granularity}?from={from}&tags={tags}&to={to}"] = x =>
{
...
}
我该怎么做?
Luis Santos
答案 0 :(得分:76)
您尝试从网址获取两件事。一个是路径hourly
的一部分 - 另一个是查询字符串中的参数 - 即from
和to
的值。
您可以通过参数将路径的一部分转到处理程序 - 示例中的x
。
您可以通过Request
上可以访问的NancyModule
访问查询字符串。
将其放入代码中:
Get["consumptions/{granularity}"] = x =>
{
var granularity = x.granularity;
var from = this.Request.Query["from"];
var to = this.Request.Query["to"];
}
变量granularity
。 from
和to
都是dynamic
,您可能需要将它们转换为您想要的任何类型。
答案 1 :(得分:13)
你可以让NancyFx的模型绑定处理url查询字符串。
public class RequestObject
{
public string Granularity { get; set; }
public long From { get; set; }
public long To { get; set; }
}
/消耗/每小时从= 1402012800000&安培;为= 1402099199000
Get["consumptions/{granularity}"] = x =>
{
var request = this.Bind<RequestObject>();
}
答案 2 :(得分:0)
您可以简单地使用:
var from = Request.Query.from;