2016-08-02 3 views
0

HttpClient를 사용하여 .NET 프로젝트와 웹 API를 연결합니다.HttpClient [HttpPost] 웹 API에 다중 객체/변수 전달 m

PostAsJsonAsync() 메서드에서 webapi 메서드에 여러 매개 변수를 보내는 방법을 알고 싶었습니다.

클라이언트 컨트롤러 :

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 방법 : I 오류를 얻고있다

[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; 
} 

:

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... 
+1

매개 변수에'[FromBody]'속성을 사용하여 게시 본문의 속성을 매개 변수에 바인딩합니다. – Nkosi

답변

0

요청을하기 전에 올바른 URL이 있는지 다시 한 번 확인하시기 바랍니다. 404이 아니고이 없음을 나타냅니다.

+0

네, 올바른지 확인했습니다 ... 나는 문제를 일으키는 매개 변수를 보내고 있다고 생각합니다. – Danish

관련 문제