我已经通过我的Web API获得了帮助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(或者只是从正文中捕获它)的代码不是。
答案 0 :(得分:0)
您无法从刚刚创建的响应对象中读取传入数据。您必须从请求中读取它:
string jsonData = new StreamReader(Request.InputStream).ReadToEnd();
然后你可以将它记录到文件中,看看你是否得到了你期望得到的东西。如果这样做,则可以手动将jsonData反序列化为List,如下所示:
List<Note> response = JsonConvert.DeserializeObject<List<Note>>(jsonData);