代码之家  ›  专栏  ›  技术社区  ›  user1019042

尝试从邮递员处呼叫失败,但可从应用程序中工作

  •  -1
  • user1019042  · 技术社区  · 6 年前

    url: https://localhost:44302/api/MyControllerName/MyMethodName
    Method: Post
    Headers: 
        Content-Type: application/json
        Accept: application/json
        Body: {"ids": "1234asdfasdfasdf3e"}
    

    和我的控制器代码:

        [HttpPost]
        [Route("api/MyControllerName/MyMethodName")]
        public async Task PostNewIds([FromBody] string ids)
        { // <-- breakpoint here is never hit
            var json = JsonConvert.SerializeObject(ids);
            Debug.WriteLine(json);
        }
    

    但是我在VS中遇到了这个错误,无法到达在开放的花括号中设置的断点

    {"Unexpected character encountered while parsing value: {. Path '', line 1, position 1."}
    

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  1
  •   vasily.sib    6 年前

    在你的 PostNewIds string 参数,因此 ids == @"{""ids"":""1234asdfasdfasdf3e""}" . 如果你需要 ids 根据请求,您可以添加一个模型:

    public class MyMethodNameModel
    {
        public string Ids { get; set; }
    }
    

    现在,您可以在操作中使用此模型:

    [HttpPost, Route("api/MyControllerName/MyMethodName")]
    public async Task PostNewIds([FromBody] MyMethodNameModel model)
    {
        Debug.WriteLine(model.Ids);
    }
    

    [HttpPost, Route("api/MyControllerName/MyMethodName")]
    public async Task PostNewIds([FromBody] string body)
    {
        var obj = JsonConvert.DeserializeObject(ids) as JObject;
        var val = obj["ids"] as JValue;
        Debug.WriteLine(val.Value);
    }