c# - 从返回 Task 的异步方法中获取“字符串”在 C# 中
问题描述
我正在尝试从异步方法中获取一个字符串,该方法返回一个字符串作为任务字符串类型
我的代码:
class DataScraper
{
private static readonly HttpClient client = new HttpClient();
public static async Task<string> getParagraph()
{
string subject1 = "";
string subject2 = "";
Dictionary<string, string> parameters = new Dictionary<string, string>()
{
{ "Subject1", subject1 },
{ "Subject2", subject2 }
};
try
{
string result = await PostHTTPRequestAsync("http://watchout4snakes.com/wo4snakes/Random/RandomParagraph", parameters);
return await Task.FromResult(result);
}
catch (Exception ex)
{
return ex.Message;
}
}
private static async Task<string> PostHTTPRequestAsync(string url, Dictionary<string, string> data)
{
using (HttpContent formContent = new FormUrlEncodedContent(data))
using (HttpResponseMessage response = await client.PostAsync(url, formContent).ConfigureAwait(false))
{
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync().ConfigureAwait(false);
}
}
}
在像这样的另一个类中使用它时:
string s = DataScraper.getParagraph();
我收到一条错误消息:
Cannot implicitly convert type 'System.Threading.Tasks.Task<string>' to 'string'
解决方案
推荐阅读
- c# - 使用依赖注入时的消息分区器?
- java - Tableview没有在列中设置正确的信息
- google-apps-script - 提示工作表中的范围以清除文本但保留公式
- javascript - 即使在使用 beginPath() 和 Closepath() 之后,在画布上绘图时也无法为 fillStyle 使用不同的颜色
- c# - 无法在 Visual Studio 中将程序集引用 (dll) 添加到 AWS Lambda 函数项目
- excel - 如果其他单元格包含特定文本,则将特定单元格的总和放入一个单元格
- tensorflow - 张量流中的降维API
- python-3.x - 熊猫用另一列值替换一列值
- javascript - 如何在不重新加载 JSON 更新页面的情况下更新 div 的类和内容
- tensorflow - Keras 卷积一维通道独立,[samples,timesteps,features],风力涡轮机数据集