В настоящее время я разрабатываю 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.
$JsonString
?, можете ли вы посмотреть его значение в отладке в VS? - person Avshalom   schedule 03.05.2020