【发布时间】:2022-01-08 01:09:19
【问题描述】:
使用HttpClient 执行 PATCH 方法请求时出现错误请求错误
var patchDoc = new JsonPatchDocument<ClientOrganisationRequestArgs>();
patchDoc.Replace(e => e.Name, clientOrganisationRequestArgs.Name);
var serializedDoc = JsonConvert.SerializeObject(patchDoc);
var requestContent = new StringContent(serializedDoc, Encoding.UTF8, "application/json-patch+json");
var httpResponseMessage = await _httpClient.PatchAsync(
$"api/orgs/{clientOrganisationRequestArgs.ClientRefId}", requestContent);
型号
public class ClientOrganisationRequestArgs
{
public int ClientRefId { get; set; }
public string Name { get; set; }
public string DefaultTimezone => "AUSTRALIA/SYDNEY";
public string CustomStylePath { get; set; }
}
请求错误时获得 400
Postman 还显示 500 内部服务器错误,正文为原始内容
授权和接受标头
_httpClient.DefaultRequestHeaders.Add(
HeaderNames.Accept, "application/vnd.yellowfin.api-v1.3+json");
_authorizationHeader =
$"{_authorizationHeader}, token={accessToken.SecurityToken}";
_httpClient.DefaultRequestHeaders.TryAddWithoutValidation(
HeaderNames.Authorization, _authorizationHeader);
【问题讨论】:
-
授权头和接受头是否发送正确?
-
根据显示的文档,它期望简单的
application/json内容类型标头,但您有application/json-patch+json作为内容类型
标签: c# asp.net asp.net-mvc asp.net-core asp.net-core-2.1