簡體   English   中英

無法將參數傳遞給 API

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM