我正在运行具有此操作的REST API服务:
[HttpPost]
public FooResponse DoFoo(FooRequest request)
//public FooResponse DoFoo([FromBody] FooRequest request)
{
return null;
}
我的请求:
public class FooRequest
{
public string FooId;
}
我有一个Angular客户,正在打电话:
startFoo(fooId: string)
{
const url = `${this.baseUrl}StartFoo`;
const params = new HttpParams()
.set('FooId', fooId);
console.log(`params : ${params}`);
const result = this.httpClient.post<fooItem>(url, {params}).toPromise();
return result;
}
从PostMan进行调用时,将填充FooId;从Angular中进行调用时,将命中端点,但参数始终为null。当我在控制台日志中查看时,参数在那里。
我已经尝试过此解决方案,但无法解决我的问题。
我想念什么?
您应该在方法中添加[FromBody]属性。
[HttpPost]
public FooResponse DoFoo([FromBody] FooRequest request)
{
return null;
}
将请求发送到api时,您的请求正文必须为json格式。
var fooRequest = { FooId : 1};
const result = this.httpClient.post<fooItem>(url, JSON.stringify(fooRequest) ).toPromise();
我没有尝试,我想它会起作用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句