不管我做任何的处理或者不处理, 当调用
request.BeginGetResponse(new AsyncCallback(GetResponseCallback), data);
线程就阻塞了,永远也没用办法触发 GetResponseCallback,即使我随便填了一个url,一般来说就算http请求时错误的,那也总得有个结果吧,代码;
private ResultData HttpPost(MemoryStream stream)
{
try
{
stream.Position = 0;
trace = Trace(stream);
HttpWebRequest request = WebRequest.CreateHttp(ConfigurationManager.BaseUrl);
request.ContentType = "application/json";
request.Method = "POST";
request.ContentLength = stream.Length;
AsyncRequestData data = new AsyncRequestData()
{
Request = request,
Data = stream
};
request.BeginGetRequestStream(new AsyncCallback(GetRequestStreamCallback), data);
_PostDoned.WaitOne();
return Result;
}
catch (Exception ex)
{
throw new Exception("请求出错");
}
}
private void GetRequestStreamCallback(IAsyncResult asyncResult)
{
try
{
AsyncRequestData asyncData = asyncResult.AsyncState as AsyncRequestData;
HttpWebRequest request = asyncData.Request;
MemoryStream mStream = asyncData.Data as MemoryStream;
Stream httpStream = request.EndGetRequestStream(asyncResult);