【问题标题】:Server-side Blazor Post using HttpClient with x-www-form-urlencoded使用 HttpClient 和 x-www-form-urlencoded 的服务器端 Blazor Post
【发布时间】:2021-08-30 12:19:45
【问题描述】:

我可以使用 Postman 将内容类型为 x-www-form-urlencoded 的请求成功发布到 REST API。

但是,当我尝试在 Blazor 服务器端应用程序中发布相同的帖子时,我收到 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 似乎对任何事情都返回 401 错误,包括我认为应该是 400 的错误 - 我相信我的 x-api-key 凭据是正确的,并且已在其他 httpClient 调用的其他地方成功使用。

【问题讨论】:

    标签: blazor dotnet-httpclient blazor-server-side


    【解决方案1】:

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

    我认为你可以使用

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

    【讨论】:

    • Het is gelukt - bedankt!
    猜你喜欢
    • 2018-03-24
    • 2018-11-17
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 2018-08-18
    • 2019-05-01
    • 2017-08-26
    相关资源
    最近更新 更多