ASP.NET CORE 3.1创建的WebApi调用失败原因

我新建了一个webapi,一开始是用的GET调用,已经能够成功调用了。后来我想修改成POST调用,改过以后再也用不起来了,但是在这个WEBAPI上面的其他方法调用正常,就是这个API无法调用,怎么也找不到原因。

请哪位专家帮助指点迷津!

图一是webapi的代码:
图二是调用的这个webapi的代码界面:
图三是调用方法代码:

img

img

img

[FromBody] string code 这种方法的话,注意传递的数据一定要用双引号扩起内容,就是数据为

var data="\"字符串内容\"";

这样,改成下面这样就行了

如果不是这种形式的数据,就是400 Bad Request这个错误.有帮助麻烦点个采纳【本回答右上角】,谢谢~~

   private void button1_Click(object sender, EventArgs e)
    {
        var sw = new Stopwatch();
        sw.Start();
        if (comboBox1.SelectedIndex==1)
        {
            txtRes.Text = Http.Post(comboBox1.Items[1].ToString(), "\""+txtReq.Text.Trim()+"\"");////////////////
        }
        else if (comboBox1.SelectedIndex == 0)
        {
            txtRes.Text = Http.Post(comboBox1.Items[0].ToString(), "\""+txtReq.Text.Trim()+"\"");////////////////
        }
        else
        {            
            txtRes.Text = "URI地址异常";
        }
        sw.Stop();
        textBox1.Text = sw.ElapsedMilliseconds.ToString();
        
    }

如果数据太复杂,最好是整成Model的形式来调用,这是传递JSON字符串

报错信息是404,说明你发送请求的url是不正确的,你的action上有个[HttpPost("PostSurface")],但是你的请求url是api/Surface,看起来你的controller应该有[Route("api/[controller]")], 所以正确的url应该是:api/Surface/PostSuface

前端:

HttpWebRequest req =
(HttpWebRequest)HttpWebRequest.Create("https://localhost:5001/api/test/PostSuface");
    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    string paraUriCoded = "你好中国https://baidu.com;nice to meet you";
    byte[] payload;
    payload = System.Text.Encoding.UTF8.GetBytes(paraUriCoded);
    req.ContentLength = payload.Length;
    Stream writer;
    writer = req.GetRequestStream();
    writer.Write(payload, 0, payload.Length);
    writer.Close();
    HttpWebResponse response;
    try
    {
        response = (HttpWebResponse)req.GetResponse();
    }
    catch (WebException e)
    {

        response = e.Response as HttpWebResponse;
    }

后端:

    [Route("api/[controller]")]
    [ApiController]
    public class TestController : ControllerBase
    {
        [HttpPost("PostSuface")]
        public IActionResult Post([FromForm]string code)
        {
            return Ok();
        }
    }

404错误应该是路径的问题,去掉[HttpPost("PostSurface")],通过https://localhost:5001/api/Surface/Surface试一下可以访问么

初步判断问题还是在向WEBAPI传值上,数据没有传进去。但我不知道如何解决!