[邮递员尝试使用表单数据进行POST时返回415,但是使用JSON的相同请求也可以正常工作]]

问题描述 投票:0回答:1

我正在构建REST API并使用Postman对其进行测试。我有一个端点,当我通过发送原始json数据进行测试时可以正常工作,但是我想在此端点上进行扩展,并允许它同时接收json数据和接受文件,因此我想在没有端点的情况下测试当前端点任何修改,看看我在使用表单数据而不是JSON测试我的API时是否会得到相同的结果,但是它总是抛出415异常。

在这张图片上,我请求表单数据。

Form-data request

这里,我向同一端点发出请求,但带有json数据

JSON post data request

[请注意,我在发送请求时未添加任何海关标题,您在顶部看到的(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数据进行测试时可以正常工作,但是我想在此端点上扩展并允许它采用...

c# json postman form-data webapi
1个回答
0
投票

在表单数据中,将其添加到页眉中

© www.soinside.com 2019 - 2024. All rights reserved.