如何从另一个API调用一个API?

时间:2019-02-07 07:35:32

标签: asp.net api .net-core asp.net-apicontroller

我的要求:

我需要从现有API调用另一个API。

现在我的问题是,可以从.net中的另一个API调用一个API吗? 如果是,如何?

1 个答案:

答案 0 :(得分:3)

要执行Http呼叫,您应该使用HttpClient名称空间中的System.Net.Http

有关更多信息:
https://docs.microsoft.com/en-us/dotnet/api/system.net.http.httpclient?view=netframework-4.7.2

我提供了一个执行Post请求的示例:

POST

using System.Net.Http;
using Newtonsoft.Json;

public class MyObject
{
   public string Name{get;set;}
   public int ID{get;set;}
}
public async Task PerformPost(MyObject obj)
{
    try
    {
        HttpClient client=new HttpClient();
        string str = JsonConvert.SerializeObject(obj);

        HttpContent content = new StringContent(str, Encoding.UTF8, "application/json");

        var response = await this.client.PostAsync("http://[myhost]:[myport]/[mypath]",
                               content);

        string resp = await response.Content.ReadAsStringAsync();
        //deserialize your response using JsonConvert.DeserializeObject<T>(resp)
    }
    catch (Exception ex)
    {
        //treat your exception here ...
        //Console.WriteLine("Threw in client" + ex.Message);
        //throw;
    }

}
public static async Task Main(){
    MyObject myObject=new MyObject{ID=1,Name="name"};
    await PerformPost(myObject);

}