Phương thức của tôi đang gọi dịch vụ web và hoạt động không đồng bộ.Cách trả về chuỗi từ async
Khi nhận được phản hồi, mọi thứ hoạt động tốt và tôi nhận được phản hồi của tôi.
Sự cố bắt đầu khi tôi cần trả lại phản hồi này.
đây là mã của phương pháp của tôi:
public async Task<string> sendWithHttpClient(string requestUrl, string json)
{
try
{
Uri requestUri = new Uri(requestUrl);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Clear();
...//adding things to header and creating requestcontent
var response = await client.PostAsync(requestUri, requestContent);
if (response.IsSuccessStatusCode)
{
Debug.WriteLine("Success");
HttpContent stream = response.Content;
//Task<string> data = stream.ReadAsStringAsync();
var data = await stream.ReadAsStringAsync();
Debug.WriteLine("data len: " + data.Length);
Debug.WriteLine("data: " + data);
return data;
}
else
{
Debug.WriteLine("Unsuccessful!");
Debug.WriteLine("response.StatusCode: " + response.StatusCode);
Debug.WriteLine("response.ReasonPhrase: " + response.ReasonPhrase);
HttpContent stream = response.Content;
var data = await stream.ReadAsStringAsync();
return data;
}
}
}
catch (Exception ex)
{
Debug.WriteLine("ex: " + ex.Message);
return null;
}
và tôi gọi nó theo cách này:
Task <string> result = wsUtils.sendWithHttpClient(fullReq, "");
Debug.WriteLine("result:: " + result);
nhưng khi in kết quả tôi nhìn thấy một cái gì đó như thế này: System.Threading.Tasks.Task
làm thế nào tôi có thể nhận được chuỗi kết quả như tôi đã làm với dữ liệu bên trong phương pháp của tôi.
bạn cần truy cập thuộc tính 'Result' của' Tác vụ' để có được kết quả mong muốn. –