Угловой 7 http.put () с телом json - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь использовать ресурс WebAPI с Angular 7 HttpClient.CURL для операции HTTP PUT успешно завершен.

curl - X PUT--header 'Content-Type: application/json'--header 'Accept: application/json' - d '%27Reviewed%27'
'https://my.organization/WebAPI/MyServices/Service1/consult/123/800088093313/reviewstatus'

Я использую следующее, чтобы сделать то же самое, но это дало мне Http 415, если я использую Json.stringfy () или Http 404, если я этого не сделаю.Не могли бы вы помочь?Спасибо.

const requestUrl = this.endpoint + '/consult/' + sta3n.toString() + '/' + consultSid.toString() + '/reviewstatus';
const requestBody = JSON.Stringfy(status);
// const requestBody = {status};
return this._http.put(requestUrl, requestBody);

Вот объявление конечной точки WebAPI

[HttpPut]
[Route("consult/{sta3n}/{consultSID}/reviewstatus")]
[SwaggerResponse(HttpStatusCode.OK, Type = typeof(String))]
[SwaggerResponse(HttpStatusCode.Unauthorized)]
[SwaggerResponse(HttpStatusCode.NotFound)]
[SwaggerResponse(HttpStatusCode.InternalServerError, Type = typeof(Exception))]
public IHttpActionResult SetConsultReviewStatus([FromUri] short sta3n, [FromUri] long consultSID, [FromBody] string status) {
    ...
    ...
}

1 Ответ

0 голосов
/ 28 декабря 2018

В методе put вы не предоставляете заголовок Content-Type .Измените строку http.put следующим образом

return this._http.put(requestUrl, requestBody, , { headers: { 'Content-Type': 'application/json' } });

Спасибо.

...