我需要將此代碼從同步轉換爲異步代碼,但到目前爲止所做的每一次嘗試都是令人沮喪的。會有人有解決辦法嗎?將HttpWebRequest從同步轉換爲異步代碼
var http = (HttpWebRequest)WebRequest.Create(Connection.GetUri(path).Uri);
http.Accept = "application/json";
http.ContentType = "application/json";
http.Method = "POST";
var parsedContent = JsonConvert.SerializeObject(value);
var encoding = new ASCIIEncoding();
var bytes = encoding.GetBytes(parsedContent);
var newStream = http.GetRequestStream();
newStream.Write(bytes, 0, bytes.Length);
newStream.Close();
var response = http.GetResponse();
var stream = response.GetResponseStream();
var sr = new StreamReader(stream);
return JsonConvert.DeserializeObject<TReturnType>(sr.ReadToEnd());
的情況下,問題是,我不能使用System.Net.Http組裝但需要異步支持 。 由於無法使用上述程序集,上述代碼已從以下版本移植過來。 Connection.Client是類型HttpClient。
var response = await Connection.Client.PostAsync(
Connection.GetUri("/transaction/announce").Uri,
new StringContent(JsonConvert.SerializeObject(Rpa).ToString(),
Encoding.UTF8,
"application/json"));
return JsonConvert.DeserializeObject<NemAnnounceResponse.Response>(
await response.Content.ReadAsStringAsync());
爲什麼你不能使用'HttpClient'? –