首页 > 解决方案 > 如何从另一个 .net API 调用 .net API?

问题描述

是否可以从 .net 中的现有 API 调用 API?如果是,我们如何调用?

标签: c#asp.netapi.net-core

解决方案


为了执行Http调用,您应该使用HttpClient位于System.Net.Http 命名空间中的 。

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

我已经包含了一个执行Post请求的示例:

邮政

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

public class MyObject
{
   public string Name{get;set;}
   public int ID{get;set;}
}
public async Task PerformPostAsync(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 PerformPostAsync(myObject);

}

推荐阅读