Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#控制器从API获取数据_C#_Ajax_Asp.net Mvc_Httprequest_Http Get - Fatal编程技术网

使用C#控制器从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

我有一个API,它将使用以下格式返回数据:

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获取数据。很高兴它有所帮助。很高兴它有所帮助。