C# 调用远程WEB API

C# 调用远程WEB API,c#,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,晚上好,, 我是c#和asp.net的新手 我已经创建了一个MVC4Web应用程序,我正在使用aspx作为视图。 我试图调用一个远程web API,但不幸的是,我没有得到它,以便在我的网站上显示数据。 我创建了一个控制器,并在控制器内部使用Index()方法编写了以下代码: public class CallAPIController : Controller { // // GET: /CallAPI/ public async Task<string> I

晚上好,, 我是c#和asp.net的新手 我已经创建了一个MVC4Web应用程序,我正在使用aspx作为视图。 我试图调用一个远程web API,但不幸的是,我没有得到它,以便在我的网站上显示数据。 我创建了一个控制器,并在控制器内部使用Index()方法编写了以下代码:

public class CallAPIController : Controller
{
    //
    // GET: /CallAPI/

   public async Task<string> Index()
    {

        HttpClient client = new HttpClient();
        client.BaseAddress = new Uri("http://remoteWEBAPI/");

        // Add an Accept header for JSON format.
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        HttpResponseMessage response = client.GetAsync("api/data").Result;  // Blocking call!
       string json = await response.Content.ReadAsStringAsync();

            Debug.WriteLine("Content: " + json);
            return json;

    }

}
public类CallAPIController:控制器
{
//
//获取:/CallAPI/
公共异步任务索引()
{
HttpClient=新的HttpClient();
client.BaseAddress=新Uri(“http://remoteWEBAPI/");
//为JSON格式添加Accept标头。
client.DefaultRequestHeaders.Accept.Add(
新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
HttpResponseMessage response=client.GetAsync(“api/data”).Result;//阻塞调用!
string json=wait response.Content.ReadAsStringAsync();
Debug.WriteLine(“内容:+json”);
返回json;
}
}

我对这项技术很陌生,我尝试了很多东西,在过去的4-5个小时里我一直在努力解决这个问题。我不知道如何解决这个问题。你能帮帮我吗?我认为,如果您的WebAPI接受
GET
方法并返回一个JSON字符串,那么对于熟悉这些的专家来说,这应该不是很困难

        WebClient client = new WebClient();
        client.Headers["Accept"] = "application/json";

        string returnedString = client.DownloadString(new Uri("http://yourwebapi.com/api/data"));

你实际遇到的问题是什么?这不是一个可回答的问题。您的代码看起来正常。您是否收到异常响应。IsSuccessStatusCode true?我对代码进行了一些更改,现在我有了上述代码。下一步是如何在我的web站点中显示数据(以便检查我是否从web API获得了正确的数据)?如何从我的视图(aspx)调用此方法?我没有在上述代码中得到任何异常或错误。感谢Ondrej Tucny和–SzabV回复我!晚上好,谢谢你回答我!:)上面的代码我应该在哪里写?在控制器内部,是视图吗?我知道这个问题很烦人,但我是MVC web应用程序的新手。您需要将它写入您已经编写HttpClient的控制器中。非常感谢您的帮助。在那之后,我如何检查我是否得到了数据?为了调用此方法,我应该在视图中写入什么?returnedString变量应该包含返回的数据我非常感谢您的帮助..,但我有点困惑..,我想在我的网站上显示此字符串。通过此函数我可以获得字符串,但如何在我的网站上显示它?我不知道我怎么能做到这一点。。。,