我使用HttpWebRequest访问Http请求,使用异步方法时无响应
public async Task<string> PostAsync(string url, string postData, Hashtable headht = null)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json;charset=UTF-8";
request.Accept = "application/json";
request.Timeout = 10000;
#region headers设置
if (headht != null)
{
foreach (DictionaryEntry item in headht)
{
request.Headers.Add(item.Key.ToString(), item.Value.ToString());
}
}
#endregion
byte[] paramJsonBytes;
paramJsonBytes = System.Text.Encoding.UTF8.GetBytes(postData);
request.ContentLength = paramJsonBytes.Length;
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(paramJsonBytes, 0, paramJsonBytes.Length);
reqStream.Close();
}
var response = request.GetResponseAsync() as HttpWebResponse;
Stream resStream = response.GetResponseStream();
StreamReader reader = new StreamReader(resStream);
string text = reader.ReadToEnd();
return text;
}
但是我将异步改成同步就没有这个问题
var response = request.GetResponse() as HttpWebResponse;
这需要怎么解决