gpt4 book ai didi

c# - 如何从 ASP.NET Core 中的 Request.Body 读取参数

转载 作者:行者123 更新时间:2023-12-04 02:57:35 32 4
gpt4 key购买 nike

上下文:我的应用程序位于中央登录应用程序后面,每当用户申请访问我的应用程序时,我的应用程序都会收到一个包含用户信息的 http 请求。我需要从 HttpRequest 正文中检索用户信息。

这是我到目前为止所尝试的:

currentContext.HttpContext.Request.Query["user-name"].toString();  // got nothing

using (var reader = new StreamReader(currentContext.HttpContext.Request.Body))
{
var body = reader.ReadToEnd();
} // I can get the raw HttpRequest Body as "user-name=some&user-email=something"

有什么方法可以用来解析 Request.Body 中的参数和值吗?
我尝试了以下,也一无所获。
HttpContext.Item['user-name'] \\return nothing
Request.Form["user-name"] \\ return nothing

我无法使用模型绑定(bind)的原因是,在 HttpRequest 正文中,键名是“用户名”,而在 c# 中,我无法创建带有“-”的变量

同时,在我的 .net 4.6 应用程序中, Request["KeyName"].toString()工作得很好。

最佳答案

我想出了一种方法来转换原始 HttpRequest查询字符串的正文,然后从中读取参数。

这是代码:

var queryString = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(requestBody);

string paramterValueIWant = queryString["KeyName"];

但是有一个问题,当 KeyName体内不存在,会抛出异常。因此,您必须进行空检查或 try catch 。

我仍然觉得应该有更好的方法来读取参数,正如我所提到的,在我的 .net 4.6 应用程序中,我需要做的就是 Request["KeyName"] .

关于c# - 如何从 ASP.NET Core 中的 Request.Body 读取参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52230692/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com