Ich verwende HttpClient, um ein .NET-Projekt mit meiner Web-API zu verbinden.HttpClient Übergeben Mehrere Objekte/Variablen zu [HttpPost] Web API m
Ich wollte wissen, wie mehrere Parameter an die Webapi-Methode in der PostAsJsonAsync() -Methode zu senden.
Client-Controller:
callbackUrl = Url.HttpRouteUrl("DefaultApiAction", new { controller = "Employee", action = "UpdateToleranceRangeByEmployeeId" });
responseMessage = await client.PostAsJsonAsync(callbackUrl, new { companyId = CompanyId, deptId = Depts, divId = Divs, empId = Emps, range = objToleranceRangeModel.ToleranceRange.Value, flag = objToleranceRangeModel.ToleranceFlag });
if (responseMessage.IsSuccessStatusCode)
{
var responseData = responseMessage.Content.ReadAsStringAsync().Result;
}
else
{
logger.Error("Error Inside UpdateToleranceRangeByEmployeeId:" + responseMessage.IsSuccessStatusCode);
}
API Methode:
[AllowAnonymous]
[HttpPost]
[Route("UpdateToleranceRangeByEmployeeId")]
public HttpResponseMessage UpdateToleranceRangeByEmployeeId(int companyId, List<int> deptId, List<int> divId, List<int> empId, double range, bool flag)
{
logger.Info("Inside UpdateToleranceRangeByEmployeeId");
HttpResponseMessage response;
List<EmployeeModel> ObjEmployeeModelList = new List<EmployeeModel>();
try
{
ObjEmployeeModelList = this._iEmployeeServices.UpdateToleranceRangeByEmployeeId(companyId, deptId, divId, empId, range, flag);
if (ObjEmployeeModelList != null && ObjEmployeeModelList.Count() != 0)
{
response = Request.CreateResponse<List<EmployeeModel>>(HttpStatusCode.OK, ObjEmployeeModelList);
}
else
{
response = Request.CreateResponse(HttpStatusCode.NotFound);
}
}
catch (Exception objEx)
{
logger.Error("Error Inside UpdateToleranceRangeByEmployeeId:" + objEx);
response = Request.CreateResponse<Exception>(HttpStatusCode.ExpectationFailed, objEx);
}
return response;
}
ich Störung erhalte:
responseMessage = {StatusCode: 404, ReasonPhrase: 'Not Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Pragma: no-cache
X-SourceFiles: =?UTF-8?B?RjpcU0FUXFNBVC5BUElcYXBpXEVtcGxveWVlXFVwZGF0ZVRvbGVyYW5jZVJhbmdlQnlFbXBsb3llZUlk?=
Cache-Contro...
Verwenden Sie das '[FromBody]' - Attribut in Ihren Parametern, um die Eigenschaften des Post-Body an Ihre Parameter zu binden. – Nkosi