Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 9th, 2012  |  syntax: None  |  size: 2.82 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public void DoPartnerPost()
  2. {
  3. AsyncWebHelper.PostAsync(postUrl, parms, callbackState =>
  4.             {
  5.                 // Success! Now make partner post
  6.                 if (callbackState.Exception == null)
  7.                 {
  8.                     MoaHelper.MoaResponse resp = AsyncWebHelper.DeSerializeToJson<MoaHelper.MoaResponse>(callbackState.ResponseStream);
  9.                     //string hiresResult = AsyncWebHelper.GetResponseText(callbackState.ResponseStream);
  10.                     DoPartnerPost(partnerPostUrl, lowResUrl, resp.Url, actionList, postData);
  11.                 }
  12.              });
  13. }
  14.  
  15. public static void GetAsync(string url, Action<HttpWebRequestCallbackState> responseCallback,
  16.             object state = null, string contentType = "application/x-www-form-urlencoded")
  17.         {
  18.             var httpWebRequest = CreateHttpWebRequest(url, "GET", contentType);
  19.  
  20.             HttpWebRequestAsyncState asyncState = new HttpWebRequestAsyncState()
  21.             {
  22.                 HttpWebRequest = httpWebRequest,
  23.                 ResponseCallback = responseCallback,
  24.                 State = state,
  25.                 StartTime = DateTime.Now
  26.             };
  27.  
  28.             IAsyncResult result = httpWebRequest.BeginGetResponse(BeginGetResponseCallback, asyncState);
  29.  
  30.             // Add Timeout mechanism
  31.             ThreadPool.RegisterWaitForSingleObject(result.AsyncWaitHandle, new WaitOrTimerCallback(TimeoutCallback), asyncState, AsyncTimeout, true);
  32.         }
  33.  
  34.  static void BeginGetResponseCallback(IAsyncResult asyncResult)
  35.         {
  36.             WebResponse webResponse = null;
  37.             Stream responseStream = null;
  38.             HttpWebRequestAsyncState asyncState = null;
  39.             try
  40.             {
  41.                 asyncState = (HttpWebRequestAsyncState)asyncResult.AsyncState;
  42.  
  43.                 // end this operation
  44.                 webResponse = asyncState.HttpWebRequest.EndGetResponse(asyncResult);
  45.                 responseStream = webResponse.GetResponseStream();
  46.  
  47.                 var webRequestCallbackState = new HttpWebRequestCallbackState(responseStream, asyncState.State);
  48.                 asyncState.ResponseCallback(webRequestCallbackState);
  49.  
  50.                 // cleanup
  51.                 responseStream.Close();
  52.                 responseStream = null;
  53.                 webResponse.Close();
  54.                 webResponse = null;
  55.             }
  56.             catch (Exception ex)
  57.             {
  58.                 if (asyncState != null)
  59.                     asyncState.ResponseCallback(new HttpWebRequestCallbackState(ex));
  60.                 else
  61.                     throw;
  62.             }
  63.             finally
  64.             {
  65.                 if (responseStream != null)
  66.                     responseStream.Close();
  67.                 if (webResponse != null)
  68.                     webResponse.Close();
  69.             }
  70.         }