我的Web已经得到了here和here的帮助,但现在我想我已经到达了大峡谷的边缘……幸运的是,我的老板推迟了对我的处死,但还没有减刑。因此,任何建议都是由衷的感谢,特别是因为我在这方面的新手身份还没有改变。
因此,代码如第二个链接问题所示(可以在此处发布,但我认为它是多余的)。我已经纠正了SQL链接的错误,所以现在在尝试调用过程、设置调试环境并开始测试时,它不会崩溃。
我在调试时使用Chrome中的ARC扩展发送了一个POST请求(在有效负载中包含JSON ),并且我收到了一条错误消息:

但是,在使用建议将代码从答案和注释更改为以下内容后:
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捕获它)不是。
发布于 2016-02-11 21:16:01
您不能从刚创建的response对象中读取传入数据。您必须像这样从请求中读取它:
string jsonData = new StreamReader(Request.InputStream).ReadToEnd();然后,您可以将其记录到文件中,以查看您是否获得了预期的结果。如果您这样做了,那么您可以手动反序列化jsonData,使其如下所示:
List<Note> response = JsonConvert.DeserializeObject<List<Note>>(jsonData);https://stackoverflow.com/questions/35339306
复制相似问题