无法将参数传递给API

温迪塞尔

我正在运行具有此操作的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章