使用C#控制器从API获取数据
我有一个API,它将使用以下格式返回数据:使用C#控制器从API获取数据,c#,ajax,asp.net-mvc,httprequest,http-get,C#,Ajax,Asp.net Mvc,Httprequest,Http Get,我有一个API,它将使用以下格式返回数据: http://etr.azurewebsites.net/api/calculation/calculation?currency=eur&edition=standart&systems=50&version=5 我想创建一个HttpActionResult,如下所示: public class CalculateController : ApiController { // GET: Calcula
http://etr.azurewebsites.net/api/calculation/calculation?currency=eur&edition=standart&systems=50&version=5
我想创建一个HttpActionResult
,如下所示:
public class CalculateController : ApiController
{
// GET: Calculate
[HttpGet]
public IHttpActionResult CalculatePrice([FromUri]string currency,
[FromUri]string edition = null,
[FromUri]int? systems = null,
[FromUri]string version = null)
{
//Code here
}
}
我的RouteConfig
类看起来像:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional }
);
}
另外,我从中获取数据的控制器如下所示:
public class CalculationController : ApiController
{
[HttpGet]
public async Task<IHttpActionResult> Calculate(.._parameters_..)
{
//Code here...
}
}
公共类计算控制器:ApiController
{
[HttpGet]
公共异步任务计算(..\u参数\\)
{
//代码在这里。。。
}
}
我怎样才能请求从我想要的URL获取数据?使用向您想要使用正确参数调用的URL发出请求。我猜您要调用的url是web api/RESTful web服务
using (var client = new HttpClient())
{
// New code:
client.BaseAddress = new Uri("Your API URL");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
根据API方法的类型(GET/POST),您将进行适当的调用。
您可以在此示例中找到更多信息
该示例有一个控制台应用程序作为客户端,用于调用web api,而在您的示例中,MVC应用程序就是客户端 使用向要使用正确参数调用的url发出请求。我猜您要调用的url是web api/RESTful web服务
using (var client = new HttpClient())
{
// New code:
client.BaseAddress = new Uri("Your API URL");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
}
根据API方法的类型(GET/POST),您将进行适当的调用。
您可以在此示例中找到更多信息
该示例有一个控制台应用程序作为客户端,用于调用web api,而在您的示例中,MVC应用程序就是客户端 basepath/api/Calculation/Calculation?param=Values如果您可以访问计算逻辑和计算逻辑/代码,那么为什么需要通过api调用,它们是否在同一个解决方案中?不,它们不在同一个解决方案中,它们在不同的解决方案中@但是你可以访问代码,一个公共库怎么样。试图保存网络call@PreetSingh我提出了同样的建议,但我得到的回应是,我应该使用Requestbasepath/api/Calculation/Calculation?param=Values获取数据。如果您可以访问计算逻辑和计算逻辑/代码,那么为什么需要通过api调用,它们在同一溶液中吗?不,它们不在同一溶液中,它们在不同的溶液中@但是你可以访问代码,一个公共库怎么样。试图保存网络call@PreetSingh我也提出了同样的建议,但我得到的回应是,我应该使用requests获取数据。很高兴它有所帮助。很高兴它有所帮助。