'Null parameter on API POST
Web Controller:
public void SignIn(UserInfo user, IList<string> roleList, bool rememberMe = false)
{
Audit audit = new Audit()
{
UserName = user.UserName,
Role = roleList[0].ToString(),
ControllerAccessed = "Login",
MethodAccessed = "Login",
TimeAccessed = DateTime.UtcNow,
IsLogin = true,
Is_Report = false,
Report_Type = null,
Report_Name = null
};
PostAPIData<int>(apiBaseUrl + "api/AuditAPI/LogUIAudit", audit);
}
public class Audit
{
public string UserName { get; set; }
public string Role { get; set; }
public string ControllerAccessed { get; set; }
public string MethodAccessed { get; set; }
public DateTime TimeAccessed { get; set; }
public bool IsLogin { get; set; }
public bool Is_Report { get; set; }
public string Report_Type { get; set; }
public string Report_Name { get; set; }
}
public T PostAPIData<T>(string url, object obj)
{
using (HttpClient client = new HttpClient())
{
var responseTask = client.PostAsJsonAsync(url, obj);
responseTask.Wait();
var result = responseTask.Result;
}
}
In above SignIn method, I'm passing 2 different api calls with respective model classes. So I defined it as obj in the PostAPIData method. and one of the url is https://localhost:44306/api/AuditAPI/LogUIAudit. When this code hits the below API Controller, parameters turns empty:
API Controller:
[Route("api/AuditAPI/LogUIAudit")]
[HttpPost]
public int LogUIAudit(Audit AuditEntry)
{
}
I tried below conversions. But none of them works.
1:
StringContent content = new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json");
var responseTask = client.PostAsJsonAsync(url, content);
2:
StringContent content = new StringContent(JsonConvert.SerializeObject(AuditEntry), Encoding.UTF8, "application/json");
var responseTask = client.PostAsync(url, content);
3:
Audit AuditEntry = (Audit)obj;
StringContent content = new StringContent(JsonConvert.SerializeObject(AuditEntry), Encoding.UTF8, "application/json");
var responseTask = client.PostAsync(url, content);
Both client and server is running. But when I debug the code, all the properties of that model class are shown as null.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
