private static void WaitForResult(RequestState state) { while (String.IsNullOrEmpty(state.Result)) { Thread.Sleep(100); } }
public string Post(string requestString) { HttpWebRequest request = CreateWebRequest(); var state = new RequestState(); request.BeginGetRequestStream(asyncResult => { using(var writer = new StreamWriter(request.EndGetRequestStream(asyncResult))) { writer.Write(requestString); writer.Flush(); } request.BeginGetResponse(asyncResult2 => { var response = (HttpWebResponse) request.EndGetResponse(asyncResult2); using (var sr = new StreamReader(response.GetResponseStream())) { state.Result = sr.ReadToEnd().Trim(); } }, state); }, state); WaitForResult(state); return state.Result; }