当前位置: 首页 > 编程语言 > C#

从HttpClient.GetStringAsync读取响应分享

时间:2023-04-11 00:00:01 C#

C#学习教程:从HttpClient.GetStringAsync读取响应我正在使用以下代码向服务器发送请求并期望返回HTML响应。但是,当我返回字符串并将其显示在UI中时,它只是说:“System.Threading.Tasks.Task'1[System.String]”它没有向我显示应返回的实际HTML/XML。当我在普通的Windows窗体应用程序中使用相同的URL时,它返回我期望的数据,但我在那里使用的代码不同,因为它是Win32而不是WinRT/这个新的RT。这是我的代码。我怀疑我没有以正确的格式返回数据,但我不知道我应该做什么。varurl=newUri("http://www.thewebsitehere.com/callingstuff/calltotheserveretc");varhttpClient=newHttpClient();尝试{varresult=awaithttpClient.GetStringAsync(url);stringcheckResult=result.ToString();httpClient.Dispose();返回检查结果;}catch(Exceptionex){stringcheckResult="Error"+ex.ToString();httpClient.Dispose();返回检查结果;我认为问题不在于此代码片段,而在于调用者。我怀疑这段代码在一个方法中返回了一个任务(正确的,这样调用者就可以等待这个方法的HttpClient调用起作用),但是调用者并没有在等待它。代码片段看起来是正确的,与https://msdn.microsoft.com/en-us/library/windows/apps/windows.web.http.httpclient.aspx上的文档基本相同。GetStringAsync返回一个任务。await将处理Task部分并返回var结果中的字符串。如果您在函数内部并检查结果或检查结果,它们将是所需的字符串。调用者也需要这样做。IfthisisafunctionTaskGetData(){//你的代码片段来自postreturncheckResult;//stringreturn被映射到Task}那么你需要使用await调用来获取字符串而不是Task并在GetDataDone中等待:varv=GetData();//错误的vardata=awaitGetData();//正确唯一可以等待任务的时间是当您需要操作任务本身而不仅仅是获取结果时。以上就是C#学习教程:从HttpClient.GetStringAsync阅读响应分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: