我试图使用以下代码从WPF向Web API发出post请求,但请求参数始终为空。
请求模型
public class Document { public string FileName { get; set; } public byte[] Buffer { get; set; } } public class Request { public string Uploader { get; set; } public List<Document> Documents { get; set; } }
WPF客户端
var obj = new Request() { Uploader = "John Doe", Documents = new List<Document> { new Document() { FileName ="I Love Coding.pdf", Buffer = System.IO.File.ReadAllBytes(@"C:\Users\john.doe\Downloads\I Love Coding.pdf.pdf") } } }; using (var http = new HttpClient()) { var encodedJson = JsonConvert.SerializeObject(obj); var conent = new StringContent(encodedJson, Encoding.UTF8, "application/json"); HttpResponseMessage response = await http.PostAsync("https://my-app.com/api/upload", conent); response.EnsureSuccessStatusCode(); }
Web API
[Route("")] public class AppController : ControllerBase { [HttpPost] [Route("api/upload")] public async Task<IActionResult> UploadDocumentsAsync([FromBody] Request request) { // request is always null when app is running in production // https://my-app.com/api/upload //request is not null when running on https://localhost:8080/api/upload } }
请问我在上述实施中缺少什么?请求参数在本地主机上不为空,但在生产中始终为空。