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的字符串,但是出现了错误。这样又不行,求人修改一下 展开
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的字符串,但是出现了错误。这样又不行,求人修改一下 展开
1个回答
展开全部
这个函数有什么意义么,没有返回值,也没有把结果打印出来。
public async void Weather(ref string message)
使用的时候也在 形参message 前加上 ref关键字
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() 方法应该能返回 实际的字符串
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询