问题描述
我正在尝试向Web-api控制器发出一个简单的发布请求,该请求的主体中有一个字符串而不是一个对象,我设法从邮递员那里毫无问题地进行了调用,并且设置如下: 网址类似于: http:/// api //?id = 111 正文(原始)有一个简单的字符串,例如:“ aaa”,它定义为JSON。 这是我的代码(忽略打字错误-它是手工编写的): 这是web-api控制器:
[Route("Update")]
[HttpPost]
public bool UpdateData([FromQuery] int id,[FromBody] string content)
{
DoAomwthing();
}
这是我的角度代码:
updateData(id :number,content : string) : Observable<boolean>
{
const httpOptions =
{
headers: new HttpHeaders({'Content-Type':'application/json'}),params: new HttpParams().set('id','1')
}
return this.httpClient.post<boolean>(<some base url> + 'UpdateData',content,httpOptions);
}
我在做什么错了?
解决方法
您的return语句位于HTTP选项obj
中updateData(id :number,content : string) : Observable<boolean>
{
const httpOptions =
{
headers: new HttpHeaders({'Content-Type':'application/json'}),params: new HttpParams().set('id','1')
}
return this.httpClient.post<boolean>(<some base url> + '/UpdateData',content,httpOptions);
}
,
找出了根本原因-内容应该已经转换为json字符串,因为这是内容类型的定义方式(尽管json在常规字符串而非对象中进行了这种更改,但仍然如此)