В настоящее время я разрабатываю ASP. NET Core Web API (v3.1) (плюс сценарий PowerShell).
Контроллер
[Route("api/[controller]")]
[ApiController]
public class RegisterDeviceController : ControllerBase
{
private readonly SCMDB _context;
public RegisterDeviceController(SCMDB context)
{
_context = context;
}
// POST: api/RegisterDevice
[HttpPost]
public async Task<ActionResult<Device>> PostDevice(Device device)
{
if (device.SiteKey == null)
return StatusCode(406,"NoSiteKeyDefined!");
return null;
}
}
«Потребителем» является сценарий PowerShell:
# Post to web api
try{
$response = Invoke-RestMethod -Uri "$ScmWebApiUrl" -Method Post -Body $JsonString -ContentType "application/json"
}
catch {
$err = $_.Exception
}
Write-Host $ErrResp
Я пытаюсь выяснить: как получить ResponseText "NoSiteKeyDefined!" в PowerShell.
Я получаю:
[DBG]: PS C:\Windows\system32>> $err.Message
The remote server returned an error: (406) Not Acceptable.
Но мне также нужно сообщение (в данном случае -> NoSiteKeyDefined!)
Это не должен быть код ошибки 406 также может быть другим «ActionResult» или ответом. Я также попытался вернуть BadRequest («NoSiteKeyDefined!»), Но я не нахожу этот фрагмент сообщения ни в $ response, ни в объекте $ err. Важно то, что я могу передать сообщение, которое можно получить и обработать в сценарии PowerShell.