C# RESTAPI向sql数据库传递空值

C# RESTAPI向sql数据库传递空值,c#,rest,C#,Rest,我有一个对象,其属性statusDate类型为DateTime。此属性是可为null的类型,实现为: public DateTime? statusDate {get;set;} 我正在使用RESTAPI将数据插入数据库。我收到错误400错误请求。通过谷歌搜索,我意识到由于该值为null,我的RESTAPI url抛出了错误。如何将空值传递给RESTAPI 例如:http://localhost:62733/api/Claims/InsertAsync/username=Zainalds&st

我有一个对象,其属性statusDate类型为DateTime。此属性是可为null的类型,实现为:

public DateTime? statusDate {get;set;}
我正在使用RESTAPI将数据插入数据库。我收到错误400错误请求。通过谷歌搜索,我意识到由于该值为null,我的RESTAPI url抛出了错误。如何将空值传递给RESTAPI

例如:http://localhost:62733/api/Claims/InsertAsync/username=Zainalds&statusDate=null

        public static async Task<long> PostAsyncLong<T>(Uri uri, T postObject)
        {
           var httpContent = new StringContent(JsonSerializer.Serialize(postObject), Encoding.UTF8, "application/json");
           var response = await _httpClient.PostAsync(uri, httpContent, _cancellationToken).ConfigureAwait(false);

           return await GetResult<long>(response);
        }
公共静态异步任务PostAsyncLong(Uri,T postObject)
{
var httpContent=newstringcontent(JsonSerializer.Serialize(postObject),Encoding.UTF8,“application/json”);
var response=await\u httpClient.PostAsync(uri、httpContent、\u cancellationToken).ConfigureAwait(false);
返回等待GetResult(响应);
}

这取决于您访问[GET]或[POST]的API请求的类型

获取请求 您需要在代码级别处理的请求访问,例如

  • API URL-API/testController/InsertAsync?用户名=Zainalds&statusDate=null

            public static async Task<long> PostAsyncLong<T>(Uri uri, T postObject)
            {
               var httpContent = new StringContent(JsonSerializer.Serialize(postObject), Encoding.UTF8, "application/json");
               var response = await _httpClient.PostAsync(uri, httpContent, _cancellationToken).ConfigureAwait(false);
    
               return await GetResult<long>(response);
            }
    

后请求 请求访问您不需要为statusDate分配值,然后默认设置为null,例如

请求模型 在API控制器中
答案很简单,确保所有子模块都更新为使用最新的POCO类。

也许
http://localhost:62733/api/Claims/InsertAsync/username=Zainalds
?虽然我希望您使用请求正文,而不是将值作为查询字符串参数传递。@John我也在使用swagger。举个例子,我添加了请求Url。用户名是否绑定到您的对象?您是否尝试过使用浏览器开发工具或类似Fiddler的代理来检查您发送的内容?
public class InsertAsyncRequest
{
     public string username { get; set; }
     public DateTime? statusDate { get; set; }
}
 [HttpPost]
 public string InsertAsync(InsertAsyncRequest _req)
 {    
     return "value";
 }