我正在构建REST API并使用Postman对其进行测试。我有一个端点,当我通过发送原始json数据进行测试时可以正常工作,但是我想在此端点上进行扩展,并允许它同时接收json数据和接受文件,因此我想在没有端点的情况下测试当前端点任何修改,看看我在使用表单数据而不是JSON测试我的API时是否会得到相同的结果,但是它总是抛出415异常。
在这张图片上,我请求表单数据。
这里,我向同一端点发出请求,但带有json数据
[请注意,我在发送请求时未添加任何海关标题,您在顶部看到的(10)是临时标题。我也尝试添加Content-Type:multipart / form-data,但是得到了相同的结果。
这是后面的代码
PeopleController.cs
[HttpPost] public ActionResult<PersonDto> PostPerson(PersonForCreationDto person) { var personEntity = _mapper.Map<Entities.Person>(person); //Maps PersonForCreationDto to Entites.Person. This is possible because of the mapping in PeopleProfile.cs _personLibraryRepositry.AddPerson(personEntity); _personLibraryRepositry.Save(); var personToReturn = _mapper.Map<PersonDto>(personEntity); return CreatedAtRoute("GetPerson", new { personId = personToReturn.PersonId }, personToReturn); }
PersonForCreationDto
public class PersonForCreationDto { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public string ReasonsForBeingOnTheList { get; set; } public ICollection<PictureForCreationDto> Pictures { get; set; } = new List<PictureForCreationDto>(); }
PersonLibraryRepository.cs
public void AddPerson(Person person)
{
if (person == null)
{
throw new ArgumentNullException(nameof(person));
}
person.PersonId = Guid.NewGuid(); //API is responsibile for creating new IDS.
foreach (var picture in person.Pictures)
{
picture.PictureId = Guid.NewGuid();
}
_context.People.Add(person);
}
我正在构建REST API并使用Postman对其进行测试。我有一个端点,该端点在通过发送原始json数据进行测试时可以正常工作,但是我想在此端点上扩展并允许它采用...
在表单数据中,将其添加到页眉中