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);
我能够使用 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);