コード例 #1
0
ファイル: WebPoster.cs プロジェクト: changhongfu/TDDKata
 private static void WaitForResult(RequestState state)
 {
     while (String.IsNullOrEmpty(state.Result))
     {
         Thread.Sleep(100);
     }
 }
コード例 #2
0
ファイル: WebPoster.cs プロジェクト: changhongfu/TDDKata
        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;
        }