2015-08-11 3 views
0

у меня есть метод WebAPI с 2-мя параметры, а затем:Как вызвать метод WebAPI с параметрами

public IQueryable<Facilities> GetFacilityList(string baseCode, string scope) 
{ 
    return Object; 
} 

В моем Asp.Net MVC У меня есть следующий до сих пор:

public ActionResult FacilityGrid() 
    { 
     List<Facilities> query; 

     using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri("http://localhost:8080/"); 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 




      HttpResponseMessage response = await client.GetAsync("api/facilities"); 
      if (response.IsSuccessStatusCode) 
      { 
      // Product product = await response.Content.ReadAsAsync>Product>() 
      } 

     } 

}

Как я могу назвать WebApi и передать два параметра?

+1

Добавить их в строку запроса? –

+0

попробуйте использовать api/facilities? BaseCode = baseCodeInput & scope = scopeInput – Guanxi

ответ

0

Вы можете создать строку запроса вручную, как предложено в комментарии к вашему сообщению кода, или с помощью класса, такого как UriBuilder. Этот метод, казалось, давал желаемый ответ.

public async Task<ActionResult> QuetionTwoApiCall() 
    { 
     var builder = new UriBuilder("http://localhost/api/question2"); 
     builder.Port = 50742; 
     var query = HttpUtility.ParseQueryString(builder.Query); 
     query["basecode"] = "somebasecode"; 
     query["scope"] = "somescope"; 
     builder.Query = query.ToString();  
     string url = builder.ToString(); 
     using (var client = new HttpClient()) { 

      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      HttpResponseMessage response = await client.GetAsync(new Uri(url)); 
      string donothing = "do nothing"; 
     } 
     return RedirectToAction("QuestionTwo"); 
    } 
} 
Смежные вопросы