Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Post上的Web Api 2[FromBody]请求正文为空_Post_Asp.net Web Api2_Swagger_Frombodyattribute - Fatal编程技术网

Post上的Web Api 2[FromBody]请求正文为空

Post上的Web Api 2[FromBody]请求正文为空,post,asp.net-web-api2,swagger,frombodyattribute,Post,Asp.net Web Api2,Swagger,Frombodyattribute,全部, 首先,我知道类似的问题已经被问了无数次。 第二,我没有50分(?!)来评论任何一个。 第三,我不能用“回答”来澄清我在这些帖子上的问题——我得到警告,我将来将被禁止回答任何问题 于是不得不再问。我已经尝试了所有可能的编码——全部5种,但我总是为下面的控制器的字符串Post主体获取空值。我用招摇来测试 public class AmcoController : ApiController { // GET: api/Amco?name=Blah public Amco Ge

全部,

首先,我知道类似的问题已经被问了无数次。 第二,我没有50分(?!)来评论任何一个。 第三,我不能用“回答”来澄清我在这些帖子上的问题——我得到警告,我将来将被禁止回答任何问题

于是不得不再问。我已经尝试了所有可能的编码——全部5种,但我总是为下面的控制器的字符串Post主体获取空值。我用招摇来测试

public class AmcoController : ApiController
{
    // GET: api/Amco?name=Blah
    public Amco Get(string name)
    {
        return Amco(name);
    }

    // POST: api/Amco
    public void Post([FromBody]string value)
    {
        System.Diagnostics.Debug.WriteLine("Request Body --> " + value);
    }

    // PUT: api/Amco?name=Blah
    public void Patch(string name, [FromBody]string value)
    {
    }

    // DELETE: api/Amco?name=Blah
    public void Delete(String name)
    {
    }
}

把工作做好。不知道发生了什么事。如果有人能复制/粘贴、测试并告诉我,我将不胜感激。使用VS 2017,我不知道为什么swagger不从body中获取单个字符串值,但您可以执行以下解决方法:

更改代码以接受Amco对象(我认为这也是post请求的常见情况)

在此之后,大摇大摆的用户界面应该是这样的,请求工作正常


希望这有帮助,快乐编码

“使用招摇过市来测试”-你是指招摇过市的用户界面吗?如果是,请求在Swagger UI中是什么样子的?请在浏览器开发工具的网络选项卡上发布用户界面截图和原始请求数据。另外,您使用的是哪个版本的Swashback?原始请求是什么样子的?我们需要看到,为了进一步评估,是的,我使用了一个类的实例作为方法的参数,它是有效的。谢谢