2016-08-02 5 views
0

HttpClientを使用して.NETプロジェクトとWeb APIを接続しています。HttpClient [HttpPost] Web 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の方法:私はエラーを取得しています

[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

はい、私はその正しいことを確認しました...私は問題を作成するrを送信していると思います – Danish

関連する問題