Server-side Blazor Post 将 HttpClient 与 x-www-form-urlencoded 结合使用

Server-side Blazor Post using HttpClient with x-www-form-urlencoded

我能够使用 Postman 向 REST API 成功发送内容类型为 x-www-form-urlencoded 的 Post 请求。

但是,当我尝试在 Blazor Server-Side 应用程序中执行相同的 post 时,我收到了 401 错误。

我的代码相关部分如下:

FormUrlEncodedContent content = new(new Dictionary<string, string>()
            {
                ["qualification_id"] = qualification.QualificationId,
                ["period_id"] = qualification.PeriodId,
                ["taken_date"] = qualification.CompletedDateString,
                ["expiration_date"] = qualification.ExpirationDateString,
            });
            content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");

            var request = new HttpRequestMessage(HttpMethod.Post, requestUri);
            request.Headers.Add("x-api-key", xApiKey);

            var client = _clientFactory.CreateClient();

            var response = await client.PostAsync(requestUri, content);

            var ret = await response.Content.ReadFromJsonAsync<MemberQualification>();

            return ret;

如有任何建议,我们将不胜感激。注意 - API 似乎 return 几乎所有内容都出现 401 错误,包括我认为应该是 400 的错误 - 我相信我的 x-api-key 凭据是正确的并且已被使用在其他 httpClient 调用的其他地方成功。

请注意,request 已创建并填充但未以任何方式使用。匹配 return 代码(401 未授权)。

我想你可以使用

//request.Headers.Add("x-api-key", xApiKey);
  content.Headers.Add("x-api-key", xApiKey);