Когда я вызываю rest api он вызывает дважды для каждого запроса
Я создал веб-API и пытаюсь использовать его в веб-приложении MVC ,но методы веб-api вызывают дважды для каждого запроса, приложение MVC запрашивает только один вызов веб-api
Что я уже пробовал:
Метод Веб-Api :
[HttpPost] [Route("SaveClientDetails")] public async Task<httpresponsemessage> AddNewClient([FromBody]usp_GetClientDetails client) { try { usp_GetClientDetails result = new usp_GetClientDetails(); await Task.Run(() => { result = IClientRepository.InsertClientDetails(client); }); return Request.CreateResponse(HttpStatusCode.OK, new { StatusCode = HttpStatusCode.OK, Status = "Success", Data = result }); } catch (Exception ex) { return Request.CreateResponse(HttpStatusCode.NotFound, new { StatusCode = HttpStatusCode.InternalServerError, Status = "Failed", Data = ex.Message }); } }Клиент, вызывающий веб-API:
[HttpPost] public ActionResult AddClient(ClientAddModel objcltModel) { var parameters = new usp_GetClientDetails { ClientMappedTo=Convert.ToInt32(objcltModel.ClientMappedTo), UserName="", FirstName=objcltModel.FirstName, LastName= objcltModel.LastName, EmailId= objcltModel.EmailId, PrimaryContactNo= objcltModel.PrimaryContactNo, SecondaryContactNo= objcltModel.SecondaryContactNo, QRCode=Common.CreateQRCodeWithContact(objcltModel.PrimaryContactNo), AadharNo= objcltModel.AadharNo, PanNo= objcltModel.PanNo, Pincode= objcltModel.Pincode, City= objcltModel.City, IsActive=true, CreatedDate=DateTime.Now, Deposit=objcltModel.Deposite, Area1= objcltModel.Area1, Area2= objcltModel.Area2, FloorNo= Convert.ToInt32(objcltModel.FloorNo), FlatNo= objcltModel.FlatNo, BuildingName= objcltModel.BuildingName, Rate=objcltModel.Rate }; var result = WebAPIGeneric.GetAPIResponse(WebAPIMethods.SaveClientDetails, parameters, Method.POST, null); if(result !=null) { if(result.Status=="Success") { ViewBag.Message = "Client Added Successfully";//JsonConvert.DeserializeObject<usp_getclientdetails>(result.Data.ToString()).Message; } } ViewBag.Userlst = getUserList() == null ? new SelectList(string.Empty) : new SelectList(getUserList().ToList(), "UserId", "FullName"); return View("Index"); }GetAPIResponseMethod :
public static ResponseModel GetAPIResponse(string Url, object data, Method method,Hashtable htable) { var client = new RestClient(Common.baseUrl); var request = new RestRequest(Url, method); if(data==null && htable !=null) { foreach(DictionaryEntry entry in htable) { request.AddParameter(entry.Key.ToString(),entry.Value.ToString()); } //request.AddParameter("application/json", JsonConvert.SerializeObject(htable), ParameterType.QueryString); } else { request.AddJsonBody(JsonConvert.SerializeObject(data)); } var x = client.Execute(request); return JsonConvert.DeserializeObject<responsemodel>(client.Execute(request).Content); }Класс Модели Ответа:
public class ResponseModel { public int StatusCode { get; set; } public string Status { get; set; } public object Data { get; set; } }
Afzaal Ahmad Zeeshan
Лучше всего было бы отладить функцию и пройти через нее строчку за строчкой. Только тогда вы сможете увидеть, когда будет сделан HTTP-запрос.
Игнорируйте комментарий, пожалуйста, смотрите Решение 1.