我有一個接受 [FromBody] 物件 param1 的端點,如下所示:
public IActionResult PostStuff([FromBody] object param1)
{
}
但是,我試圖讓這個 [FromBody] 引數是可選的。所以有時我可能想將它傳遞給 JSON,有時我不想。這是我的 API 呼叫代碼
private void CallPostAPI(string body)
{
string url = "....../api/poststuff";
var httpClientHandler = new HttpClientHandler {UseDefaultCredentials = true};
using (var client = new HttpClient(httpClientHandler){BaseAddress = new Uri(url})
{
HttpRequestMessage request = new HttpRequestMessage
{
Method = HttpMethod.Post
};
if (body !=null)
{
request.content = new StringContent(body, Encoding.UTF8, "application/json");
}
var results = client.SendAsync(request);
var response = results.Result;
}
}
當我有 JSON 正文時,這很有效,但是,我將如何發送一個空的 BODY?
如果嘗試在沒有內容的情況下發送它,我會遇到錯誤:
狀態代碼:415,原因短語:“不支持的媒體型別”,版本:1.1,內容:System.Net.Http.HttpConnectionResponseContent,標題:
謝謝。
uj5u.com熱心網友回復:
您必須在配置(啟動)中顯式啟用它:
services.AddControllersWithViews(opt =>
{
opt.AllowEmptyInputInBodyModelBinding = true;
});
然后你可以發送一個空的正文:

并以空值結束:

uj5u.com熱心網友回復:
試試這個,已經測驗過了,你不需要任何額外的配置
if (body ==null) body=string.Empty
request.content = new StringContent(body, Encoding.UTF8, "application/json");
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/353487.html
