Когда я отправляю почтовый запрос из консольного приложения в webapi, я получаю сообщение об ошибке 404
контроллер веб-API
// POST: api/Intervals
[HttpPost]
public async Task<ActionResult> PostIntervals(Intervals intervals)
{
if (!ModelState.IsValid)
{
return BadRequest("Not a valid data");
}
_context.Intervals.Add(intervals);
await _context.SaveChangesAsync();
return Ok();
}
моя модель в веб-интерфейсе
public class Intervals
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[DataType(DataType.Date)]
public DateTime DateStart { get; set; }
[DataType(DataType.Date)]
public DateTime DateEnd { get; set; }
}
это консольный метод
public class Interval
{
public int Id { get; set; }
public DateTime DateStart { get; set; }
public DateTime DateEnd { get; set; }
}
static void Main(string[] args)
{
CreateIntervalAsync().GetAwaiter().GetResult();
}
static async Task<Interval> CreateIntervalAsync()
{
var intervalForTest = new List<Interval>()
{
new Interval {Id = 1, DateStart = new DateTime(2018, 01, 01), DateEnd = new DateTime(2018, 01, 03)},
new Interval {Id = 2, DateStart = new DateTime(2018, 01, 01), DateEnd = new DateTime(2018, 01, 31)}
};
var jsonIntervalSerialize = JsonConvert.SerializeObject(intervalForTest);
HttpClient client = new HttpClient();
Uri uri = new Uri($"https://localhost:44323");
var statusCode = HttpStatusCode.NotFound;
var httpResponse = await client.PostAsync(uri,
new StringContent(jsonIntervalSerialize, Encoding.Default, "application/json"));
if (httpResponse.StatusCode == statusCode)
{
Task delay = Task.Delay(13000);
await delay;
httpResponse = await client.PostAsync(uri,
new StringContent(jsonIntervalSerialize, Encoding.Default, "application/json"));
}
Console.WriteLine("{0}", httpResponse);
if (!httpResponse.IsSuccessStatusCode)
{
throw new Exception("Cannot add a interval task");
}
var createdTask = JsonConvert.DeserializeObject<Interval>(await httpResponse.Content.ReadAsStringAsync());
return createdTask;
}
Console.WriteLine ("{0}", httpResponse) - эта команда выдает ошибку 404. Затем я пробую Waite и снова делаю почтовые запросы. но это дает ту же ошибку. С рабочего стола я отправляю json сериализовать объект, но в веб-API получает PostIntervals(Intervals intervals)
- это правильно? Как это исправить?