首页 > 解决方案 > REST API 可以在 Web API 服务中使用吗?

问题描述

我需要创建一个客户端使用的 Web API“包装器”,但在这个 Web API 服务中,我实际上需要创建一个 POST 请求,该请求是在同一个 IIS 服务器上运行的不同的 REST API 服务,它可以做一些工作并返回我通过 JSON HttpResponse 传回客户端的 StringContent。这可能吗?他们不会直接调用实际的 REST API 并返回他们不需要/不想要的数据,而是会调用我的 Web API 服务,而我只会向他们返回所需的数据。我知道这是在旧的 SOAP WSDL 模型中完成的。

如果我需要客户端传递我的 POST 请求所需的几个参数,我会让客户端使用 GET 或 POST 请求吗?

标签: asp.net-web-apiasp.net-web-api2

解决方案


这是我使用 POST 方法在另一个 API 中调用 API 的示例代码。

  using (var client = new HttpClient())
     {
                        string query;
                        using (var content = new FormUrlEncodedContent(new Dictionary<string, string>()
                        {
                            {"username", username},
                            {"password", password}
                        }))
                        {
                            query = content.ReadAsStringAsync().Result;
                        }

                        var model = new{
                            username = txtUsername.Text,
                            password = txtPassword.Text
                        };
                        var json = JsonConvert.SerializeObject(model);
                        var user = new StringContent(json, Encoding.UTF8, "application/json");

                        using (var response = await client.PostAsync(@"http://localhost/dataagent/api/user/authenticate", user))
                        {
                            if (response.IsSuccessStatusCode)
                            {
                                var result = await response.Content.ReadAsStringAsync();
                                // handle result here

                            }
                        }
}

推荐阅读