C#WebRequest 404发布错误

C#WebRequest 404发布错误,c#,json,webrequest,C#,Json,Webrequest,我正在尝试使用我创建的一些WebAPI上载一些文件。在这个过程中,我在控制器上使用了3种方法。其中两个方法可以很好地工作,但是第三个方法实际处理文件,每次我向它发出web请求时都返回404错误Not Found 控制器代码: [HttpPost] public bool UploadAgentStatement(DateTime periodStart, DateTime periodEnd, string agentNumber, string excelFileBase64, st

我正在尝试使用我创建的一些WebAPI上载一些文件。在这个过程中,我在控制器上使用了3种方法。其中两个方法可以很好地工作,但是第三个方法实际处理文件,每次我向它发出web请求时都返回404错误Not Found

控制器代码:

 [HttpPost]
    public bool UploadAgentStatement(DateTime periodStart, DateTime periodEnd, string agentNumber, string excelFileBase64, string pdfFileBase64, string carrierCode)
    {
        var excelFile = Convert.FromBase64String(excelFileBase64);
        var pdfFile = Convert.FromBase64String(pdfFileBase64);
        var success = _apiUnitOfWork.UploadStatement(periodStart, periodEnd, agentNumber, excelFile, pdfFile, carrierCode);

        return success;
    }
WebRequest代码段:

        request.Method = "POST";
        request.ContentType = !String.IsNullOrEmpty(jsonData) ? "application/json" : "";

        try
        {
            if (!String.IsNullOrEmpty(jsonData))
            {
                using (var sw = new StreamWriter(request.GetRequestStream()))
                {
                    sw.Write(jsonData);
                    sw.Flush();
                    sw.Close();
                }
            }

            using (var resp = request.GetResponse())
            {
                using (var reader = new StreamReader(resp.GetResponseStream()))
                {
                    response = Convert.ToBoolean(reader.ReadToEnd());
                }
            }
         }
而JSON:

jsonData = {
  "periodStart": "09-14-2015",
  "periodEnd": "10-15-2015",
  "agentNumber": "1ASDF",
  "excelFileBase64": " ",
  "pdfFileBase64": " ",
  "carrierCode": "MEH"
}
每次我尝试请求时,都会发现一个404错误。我希望它至少会击中控制器上的方法,但即使在POSTMAN中,我也会得到错误:

{ “消息”:“未找到与请求URI“”匹配的HTTP资源。”, “MessageDetail”:“在与请求匹配的控制器'StatementSvc'上未找到任何操作。”}

我错过了什么?是否需要在标题中添加其他内容?

将代码更改为:

    public class Dto
    {
        public DateTime PeriodStart { get; set; }
        public DateTime PeriodEnd { get; set; }
        public string AgentNumber { get; set; }
        public string ExcelFileBase64 { get; set; }
        public string PdfFileBase64 { get; set; }
        public string CarrierCode { get; set; }
    }

    [HttpPost]
    public bool UploadAgentStatement(Dto dto)
    {
        var excelFile = Convert.FromBase64String(dto.ExcelFileBase64);
        var pdfFile = Convert.FromBase64String(dto.PdfFileBase64);
        var success = _apiUnitOfWork.UploadStatement(dto.PeriodStart, dto.PeriodEnd, dto.AgentNumber, excelFile, pdfFile, dto.CarrierCode);

        return success;
    }

好吧,这当然起了作用。这就是我匆忙做事的结果。