[英]Cant pass parameter to 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();
我沒有嘗試,我想它會工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.