Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# http.NET服务器端http.request主体中发布的JSON为空_C#_Json_Node.js_Http_Asp.net Web Api - Fatal编程技术网

C# http.NET服务器端http.request主体中发布的JSON为空

C# http.NET服务器端http.request主体中发布的JSON为空,c#,json,node.js,http,asp.net-web-api,C#,Json,Node.js,Http,Asp.net Web Api,我在将JSON发布到我的web服务器时遇到问题。我有一个ASP.NET web应用程序在服务器上运行,该服务器利用属性路由来路由请求。以下是该项目的问题领域: [HttpPost] [Route("users/new")] public string PostDataModel([FromBody] dataModel jsonObj) { try { WebApiApplication.db.AddToDatabase(jsonObj); r

我在将JSON发布到我的web服务器时遇到问题。我有一个ASP.NET web应用程序在服务器上运行,该服务器利用属性路由来路由请求。以下是该项目的问题领域:

[HttpPost]
[Route("users/new")]
public string PostDataModel([FromBody] dataModel jsonObj)
{
   try
     {
         WebApiApplication.db.AddToDatabase(jsonObj);
         return "successfully inserted into database";
     }
     catch (Exception ex)
     {
         Tools.Logger.log("[POST DATA][ERROR] : " + ex.Message);
         return ex.Message;
     }
}
到目前为止,使用Postman手动发送POST请求,将JSON插入请求正文,并将内容类型设置为application/JSON,该函数成功地将JSON解析为指定的正确对象([FromBody]DataModel)。此外,我对DataModel中的所有属性都有访问器

这个问题来自于我的单元测试。我创建了一个Node.js项目来针对API进行一些单元测试。我正在使用http模块来实现这一点。在此提出请求:

req = http.request(options, (response) => {
     var body = '';

     response.on('data', (d) => {
        body += d;
     });
     response.on('end', () => {
        if (options.method == 'POST') {
           options.body = JSON.stringify(options.body);
     });
)};
“选项”参数定义为:

 var options = {
     method: 'POST',
     host: customSite,
     path: '/users/new',
     headers: { 'Content-Type' : 'application/json' },         
     body: {
            'UserId': "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
            'UserName': "Testing Suite",
            'Name': "Tester",
            'Email': "tester@test.com",
            'Password': "fake,",
            'BirthDate': "1/1/0001 12:00:00 AM",
            'NumberOfItems': 0,
            'Links': [],
            'TotalLikes': 100
     },        
 }
现在,当我运行单元测试时,API抛出一个异常,该异常被捕获为:“对象引用未设置为对象的实例。”


我在单元测试中传递的JSON实际上是从我在Postman中使用的POST请求中复制和粘贴的,这很有效。我不知道是什么问题导致API在从我的Node.js单元测试命中时失败,在从Postman命中时成功。

你能用C编写一个简单的单元测试来看看会发生什么吗?:-)今晚我会试试,我们的客户端应用程序是用Swift 3编写的,我们用它来处理所有HTTP请求。显然,Alamofire在正确解析传递给API的JSON方面没有问题