REST Api未返回预期数据

dxxyhpgq  于 2022-09-21  发布在  其他
关注(0)|答案(1)|浏览(200)

我编写了一个Auth API,它应该从我的用户那里检索详细信息,但我得到的却是错误404。我的所有用户都存储在Azure存储帐户中,我使用TableClient类来处理我的表。然而,当我开始做这个AUTH时,我无法再走得更远了。我只在这个函数上花了一周多的时间,但在这个函数上没有任何进展,以下是我的代码:

[FunctionName(nameof(Auth))]
        public static async Task<IActionResult> Auth(
            [HttpTrigger(AuthorizationLevel.Admin, "POST", Route = "auth")] HttpRequest req,
            [Table("User", Connection = "AzureWebJobsStorage")] TableClient tdClient,
            ILogger log)
        {
            string url = String.Format("http://localhost:7235/api/");

            HttpMessageHandler handler = new HttpClientHandler()
            {
            };

            var httpClient = new HttpClient(handler)
            {
                BaseAddress = new Uri(url),
                Timeout = new TimeSpan(0, 2, 0)
            };

            httpClient.DefaultRequestHeaders.Add("ContentType", "application/json");

            var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("roy.mitchel@somecompany.com:pass1234");
            string val = System.Convert.ToBase64String(plainTextBytes);
            httpClient.DefaultRequestHeaders.Add("Authorization", "Basic " + val);

            HttpResponseMessage response = httpClient.GetAsync(url).Result;
            return new OkObjectResult(response);
        }

如何使用此类对我的用户进行身份验证?我在做正确的事情吗?

谢谢。

z5btuh9x

z5btuh9x1#

通过只查看代码来调试任何API问题,是一个极其痛苦的过程(如您所发现的)。

我强烈建议使用MITM代理(如burp)来准确了解API发送和接收的内容。通过使用这种方法,错误之处通常变得非常明显。

如果您不能使用这种方法,那么为原始的HTTP请求和响应启用日志记录,如guide中所述。

相关问题