asp.net-web-api - REST API 可以在 Web API 服务中使用吗?
问题描述
我需要创建一个客户端使用的 Web API“包装器”,但在这个 Web API 服务中,我实际上需要创建一个 POST 请求,该请求是在同一个 IIS 服务器上运行的不同的 REST API 服务,它可以做一些工作并返回我通过 JSON HttpResponse 传回客户端的 StringContent。这可能吗?他们不会直接调用实际的 REST API 并返回他们不需要/不想要的数据,而是会调用我的 Web API 服务,而我只会向他们返回所需的数据。我知道这是在旧的 SOAP WSDL 模型中完成的。
如果我需要客户端传递我的 POST 请求所需的几个参数,我会让客户端使用 GET 或 POST 请求吗?
解决方案
这是我使用 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
}
}
}
推荐阅读
- php - SEO Ultimate 与 Wordpress 5.5.3
- javascript - Discord.js 知道机器人的所有公会中有多少用户
- cmake - 在 CMake 中设置互斥变量?
- r - 如何在存储在数据框中的多个列表中找到最大值?
- docker - https://localhost:8080/console :Hasura 控制台不适用于 chrome 浏览器
- python - 将 RGB 图像中每个通道的均值和标准差更改为自定义值的最有效方法?
- javascript - Yeoman - 在循环依赖中访问模块导出的不存在属性____
- python - 具有相同值的多个不可变对象是否指向内存中的单个对象?
- javascript - 重新映射 javascript(或 jquery)中的 Control + S 按钮
- angular - 属性“地图”在其初始化之前使用。(Angular 中的谷歌地图)