我正在尝试从 Owin 请求获取查询字符串参数。参数“test”的获取操作仍然为空,尽管此参数位于查询字符串中。如何从 OWIN 主机读取请求参数?
Call:
localhost:5000/?test=firsttest
Code:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseHandlerAsync((req, res) =>
{
string paramTest = req.Get<string>("test");
return res.WriteAsync(paramTest);
});
}
Get<T>
在 OWIN 环境字典中查找任何键。不过,各个 GET 请求参数并不是该字典的一部分。您可以使用以下命令获取完整的查询字符串req.QueryString
这相当于req.Get<string>("owin.RequestQueryString")
并返回test=firsttest
在你的情况下。这很容易解析。
另一种选择是这样的:
app.Use(async (ctx, next) =>
{
var param = ctx.Request.Query.Get("test");
await next();
});
IOwinRequest
实现为您提供已解析的查询字符串。请注意,获得的对象IOwinContext.Request
实施IOwinRequest
而传递给的对象UseHandlerAsync
是完全不同的类型(Owin.Types.OwinRequest
)既不提供上下文也不提供解析的查询字符串(据我所知)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)