C#中关于异步的httpclient问题

有这样一个函数publicasyncvoidWeather(stringmessage){HttpClienthttpClient=newHttpClient();str... 有这样一个函数
public async void Weather(string message)
{
HttpClient httpClient = new HttpClient();
string url = string.Format("http://api.map.baidu.com/telematics/v3/weather?location=laoshan&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9");
HttpResponseMessage response = await httpClient.GetAsync(url);
message = await response.Content.ReadAsStringAsync();
}
在函数当中message是有值的,在实际使用中,当我给函数实参a以后,调用这个函数,然后在后面使用a的时候,a是没有值的。

本来是想用task返回一个message的字符串,但是出现了错误。这样又不行,求人修改一下
展开
 我来答
lrh3321
2015-08-20 · TA获得超过2183个赞
知道大有可为答主
回答量:2296
采纳率:75%
帮助的人:2108万
展开全部
这个函数有什么意义么,没有返回值,也没有把结果打印出来。
public async void Weather(ref string message)

使用的时候也在 形参message 前加上 ref关键字
更多追问追答
追问
对,这样看来就是没意义,我想把message的值带出来,结果发现这样带不出来~~~~~我试试

试完了,异步方法不能使用ref 或 out
追答
public async void Weather(StringBuilder message){
          HttpClient httpClient = new HttpClient(); 
          string url = ; //这句包含网址,会被和谐,自己加回去
          HttpResponseMessage response = await httpClient.GetAsync(url); 
          message.Clear();
          var t =await response.Content.ReadAsStringAsync();
          message.Append(t);
     }
}

message.ToString() 方法应该能返回 实际的字符串

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式