首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web API -调试显示令人困惑的信息

Web API -调试显示令人困惑的信息
EN

Stack Overflow用户
提问于 2016-02-11 20:25:29
回答 1查看 198关注 0票数 0

我的Web已经得到了herehere的帮助,但现在我想我已经到达了大峡谷的边缘……幸运的是,我的老板推迟了对我的处死,但还没有减刑。因此,任何建议都是由衷的感谢,特别是因为我在这方面的新手身份还没有改变。

因此,代码如第二个链接问题所示(可以在此处发布,但我认为它是多余的)。我已经纠正了SQL链接的错误,所以现在在尝试调用过程、设置调试环境并开始测试时,它不会崩溃。

我在调试时使用Chrome中的ARC扩展发送了一个POST请求(在有效负载中包含JSON ),并且我收到了一条错误消息:

但是,在使用建议将代码从答案和注释更改为以下内容后:

代码语言:javascript
复制
namespace NA.Controllers
{
    public class NotesController : ApiController
    {

        [Route("AddNote")]
        [HttpPost]
        public HttpResponseMessage PostNote()
        {
            HttpResponseMessage response = new HttpResponseMessage();
            StreamReader stream = new StreamReader(HttpContext.Current.Request.InputStream);
            string jsonData = stream.ReadToEnd();
            System.IO.File.WriteAllText(@"C:\temp\BLZ_content.txt", jsonData);
            return response;
        }

    }
}

我得到了一个成功的、正确的响应,并且json正被保存到一个文件中。因此,API在总体上工作得很好。反过来,这意味着我的反序列化json的代码(或者只是从body捕获它)不是。

EN

回答 1

Stack Overflow用户

发布于 2016-02-11 21:16:01

您不能从刚创建的response对象中读取传入数据。您必须像这样从请求中读取它:

代码语言:javascript
复制
string jsonData = new StreamReader(Request.InputStream).ReadToEnd();

然后,您可以将其记录到文件中,以查看您是否获得了预期的结果。如果您这样做了,那么您可以手动反序列化jsonData,使其如下所示:

代码语言:javascript
复制
List<Note> response = JsonConvert.DeserializeObject<List<Note>>(jsonData);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35339306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档