Rest 如何从api调用中获取响应,并在.netcore中的其他端点中使用相同的响应?

Rest 如何从api调用中获取响应,并在.netcore中的其他端点中使用相同的响应?,rest,.net-core,Rest,.net Core,我是.netcore的新手,我正在开发运行在docker容器上的web api,当使用postman时,web api的输出结果非常好。我想在.netcore中创建一个程序,调用webapi端点并获取响应,然后在MVC的其他端点中使用该特定响应 解释如下。 管理员的默认用户名和密码是默认设置的,例如用户名:admin,密码:helloworld . 管理员首次登录api时需要一个新的个人密码,如下图所示 登录api是:localhost://..../v1/users/login 第一个问题是

我是.netcore的新手,我正在开发运行在docker容器上的web api,当使用postman时,web api的输出结果非常好。我想在.netcore中创建一个程序,调用webapi端点并获取响应,然后在MVC的其他端点中使用该特定响应

解释如下。 管理员的默认用户名和密码是默认设置的,例如用户名:admin,密码:helloworld . 管理员首次登录api时需要一个新的个人密码,如下图所示

登录api是:localhost://..../v1/users/login

第一个问题是如何使用.netcore给出Authorization->BasicAuth中的值。 api的主体如下图所示。

设置新密码后,api的响应是一个令牌,如下所示。

然后在环境中使用特定令牌创建用户。下面给出了更清晰问题的图像。

最后,令牌用于进行其他API调用,例如创建用户。 应用程序编程接口:https://localhost/..../v1/users 下图。

作为.netcore语言的新手,我真的很难进行这种API调用,因为我尝试的大多数教程都是从API生成自己的令牌,但这里我只想获取响应令牌并保存它,然后在其他API调用中使用它。 StackOverflow社区的支持对我来说总是非常方便

下面给出了我正在尝试的代码

**Controller**

 public class Login_AdminController : ControllerBase
    {
        [Route("/loginAdmin")]
        [HttpPost]
        public async Task<string> LoginAdminAsync([FromBody] dynamic content)
        {
            LoginAdmin L = new LoginAdmin();
            var client = new HttpClient();
            client.BaseAddress = new Uri("https://localhost:9090");
            var request = new HttpRequestMessage(HttpMethod.Post, "/v1/users/login");
            var byteArray = new UTF8Encoding().GetBytes($"<{L.username}:{L.df_Password}>");
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

            var formData = new List<KeyValuePair<string, string>>();
            formData.Add(new KeyValuePair<string, string>("new_password", "helloWorld123!"));

            request.Content = new FormUrlEncodedContent(formData);
            var response = await client.SendAsync(request);
            Console.WriteLine(response);
            return content;
        }
   }
}

谢谢。

您的问题似乎是关于如何在dotnet core中执行API请求。您正在寻找的类称为HttpClient,在dotnetcore中,它在创建一个类的方式上经历了一些变化。我建议您查看这些文档,了解如何创建一个文档,并了解一些相关知识:

最后,我推荐这个问题作为通过您创建的客户端发布JSON的示例:
. 值得注意的是,有一些扩展方法可以传递对象而不是字符串内容,在第一个文档中,您可以看到添加头的示例,例如Authorization

谢谢@JonE的回答。我用我正在尝试的代码编辑我的问题。你能检查一下吗?你想在同一台服务器上点击的是URL吗?如果是这样的话,您不想使用HttpClient,而我想使用:``返回重定向到ActionSomeController、OtherLoginAction、new LoginAdmin{..}```不,IISExpress服务器的url和我要点击的不一样。localhost:9090是从docker容器运行的,.netcore应用程序是在本地机器服务器上运行的。我不会使用FormEncoded的东西,因为这是非常陈旧和不必要的。看看我发布的第二个链接的答案
***Model***
    public class LoginAdmin
    {
        public string username = "admin";
        public string df_Password = "secret";
        public string new_Password { get; set; }
    }