使用 httpClient.GetAsync() 后无法从方法返回 HTTP 状态和数据
本文关键字:返回 方法 HTTP 状态 数据 GetAsync httpClient 使用 | 更新日期: 2023-09-27 18:32:40
我在使用以下代码时遇到问题。我正在检索一个 JSON 对象作为字符串,然后希望从我的方法返回它,以便它可以在其他地方使用。但是,当我这样做时,我收到消息:
'filmsGlossary.searchQuery.returnJson(object); return void,return 关键字后不得跟对象表达式"
public async void returnJson(object term)
{
//Set Variables
var searchFormat = "&format=json";
var termValue = term;
var httpClient = new HttpClient();
try
{
//Set web service URL format
string baseURI = "http://localhost/filmgloss/webService/web-service.php?termName=";
string userURI = baseURI + termValue + searchFormat;
//Send URL to web service and retrieve response code.
var response = await httpClient.GetAsync(userURI);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsStringAsync();
return content.ToString();
}
catch (HttpRequestException hre)
{
}
catch (Exception ex)
{
}
}
原来我只是回来
return content;
但是阅读后,似乎问题可能是我需要将其更改为:
return content.ToString();
然而,这并没有帮助。我还读到我可以将其更改为同步而不是异步方法,并将该方法更改为"公共字符串",但是我只是在学习 c#,还没有完全理解它的含义(或如何做到这一点)。
是否可以在我已经拥有的代码中解决此错误?
我也想了解问题的原因,而不仅仅是知道解决方案。
谢谢。
您确实应该粘贴收到的错误消息。
为什么你的函数声明返回void
?它应该返回任务<string
>。
public async Task<string> returnJson(object term)
同样在正文中,您应该返回任务,如下所示:
await response.Content.ReadAsStringAsync();