【发布时间】:2019-03-10 00:07:33
【问题描述】:
我尝试了 StackOverflow 上发布的解决方案,但都没有奏效。 我有一个调用 Web 服务的方法。代码如下,我不断收到编译器错误:
public async Task<ActionResult <List<items>>>getitems()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:5001/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
var Res = await client.PostAsJsonAsync("api/sub", ids);
Res.EnsureSuccessStatusCode();
if (Res.IsSuccessStatusCode)
{
var Response = Res.Content.ReadAsStringAsync().Result;
var sub = JsonConvert.DeserializeObject<JArray>(Response);
List<items> item = sub.ToObject<List<items>>();
return Ok(item);
}
}
然后我从不同的类调用方法如下:
public async Task<List<items>> getService(List<string> ids)
{
var IdentificationIdsToOrder = new JObject();
foreach (var id in ids)
{
var newId = new JProperty("ids", id);
IdentificationIdsToOrder.Add(newId);
}
_controller = new getitems();
var Res = await _controller.getitems();
var ItemList = Res.Result;
return ItemList;
}
}
这里返回值出错,无法编译。
我错过了什么?
【问题讨论】:
-
显示的代码有不一致的地方。提供minimal reproducible example 以澄清您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
@Nkosi 抱歉,我正在尝试不同的方法并将一些代码混合在一起,遵循堆栈溢出的不同示例
-
这个可以理解。但是为了获得帮助,您至少需要有一组基本代码,我们可以使用这些代码来重现您的问题并找到解决方案。
-
是的,我编辑了 post 方法。当我用邮递员测试时,这实际上是有效的。但问题是当我从不同的班级调用它时我无法开始工作
-
ActionResult 与 Mvc 一起使用,以在调用 action 方法时返回响应。我会将您的 api 调用代码提取到另一个仅返回 List 的类中,然后在
getitems操作和您的getService方法中使用它。
标签: c# .net asynchronous asp.net-web-api actionresult