如何从WebApi发布到外部资源?

时间:2016-01-05 09:44:54

标签: asp.net api asp.net-web-api

WebApi控制器必须将模型发布到单独的Api。这是可能的,如果是的话,怎么样?

1 个答案:

答案 0 :(得分:2)

是的,可以使用HttpClient类。

以下是一个例子:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://example.com");
    var content = new StringContent("{\"foo\":\"bar\"}", Encoding.UTF8, "application/json");
    await client.PostAsync("/api", content);
}

如果你已经有一个模型,你可以在传递之前将JSON序列化:

string json = JsonConvert.SerializeObject(model);
var content = new StringContent(json, Encoding.UTF8, "application/json");

还有PostAsJsonAsync扩展方法可用于简化代码:

using (var client = new HttpClient())
{
    client.BaseAddress = new Uri("http://example.com");
    await client.PostAsJsonAsync("/api", model);
}