Я пытаюсь загрузить файл JSON в. Net Core 3 WebApp, используя Powershell Core, но не могу заставить его работать. «Файл» всегда равен нулю.
Ниже кода из WebApp:
[HttpPost]
public async Task<ActionResult> UploadFile(IFormFile file)
{
if (!ModelState.IsValid)
return BadRequest();
var path = Path.GetTempFileName();
var stream = new FileStream(path, FileMode.Create);
await file.CopyToAsync(stream);
string FileName = file.FileName;
// .. parsing the file
return Ok();
}
И фактический запрос от Powershell:
$file = '/fileToUpload.json'
Invoke-RestMethod -Uri 'https://localhost:5001/uploadfile' -Method Post -InFile $file -ContentType 'application/json'
Но этот запрос всегда возвращает следующую ошибку:
Invoke-RestMethod : System.NullReferenceException: Object reference not set to an instance of an object.
И при установке точки останова в методе я вижу, что «файл» всегда равен нулю.
Изначально я начал с метода, который принимает JSON данных в теле, но, похоже, в теле запроса Post есть какое-то ограничение при использовании Invoke-RestMethod, поэтому мне пришлось придумать другое решение, чтобы обойти этот «предел». Я не сталкиваюсь с проблемой ограничения при использовании Postman, поэтому, я думаю, это связано с Powershell. В случае, если кто-то знает, как решить эту проблему «ограничения в теле», это было бы еще больше, поскольку я предпочитаю публиковать данные JSON в теле, а не публиковать файл.
Надеюсь, кто-то может мне помочь. Заранее спасибо.