Advertisement
IDNPeterL

DevKit/DevDefined/HttpWebRequest - v2 QBO ChangeDataDeleted

Feb 12th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.09 KB | None | 0 0
  1. string QboCdcXml = CallQboChangeDataDeletedWithFilter(commonService, 1, 100);
  2.  
  3. public string CallQboChangeDataDeletedWithFilter(DataServices dataServices, int startPage, int resultsPerPage)
  4. {
  5.     StringBuilder requestXML = new StringBuilder();
  6.     StringBuilder responseXML = new StringBuilder();
  7.  
  8.     var requestBody = String.Format("PageNum={0}&ResultsPerPage={1}&Filter=Entity :in: (Customer, Item)", startPage, resultsPerPage);
  9.  
  10.     HttpWebRequest httpWebRequest = WebRequest.Create(dataServices.ServiceContext.BaseUrl + "changedatadeleted/v2/" + dataServices.ServiceContext.RealmId) as HttpWebRequest;
  11.     httpWebRequest.Method = "POST";
  12.     httpWebRequest.ContentType = "application/x-www-form-urlencoded";
  13.     httpWebRequest.Headers.Add("Authorization", GetDevDefinedOAuthHeader(httpWebRequest, requestBody));
  14.     requestXML.Append(requestBody);
  15.     UTF8Encoding encoding = new UTF8Encoding();
  16.     byte[] content = encoding.GetBytes(requestXML.ToString());
  17.     using (var stream = httpWebRequest.GetRequestStream())
  18.     {
  19.         stream.Write(content, 0, content.Length);
  20.     }
  21.     HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
  22.     using (Stream data = httpWebResponse.GetResponseStream())
  23.     {
  24.         return new StreamReader(data).ReadToEnd();
  25.     }
  26.  
  27. }
  28.  
  29. protected string GetDevDefinedOAuthHeader(HttpWebRequest webRequest, string requestBody)
  30. {
  31.  
  32.     OAuthConsumerContext consumerContext = new OAuthConsumerContext
  33.     {
  34.         ConsumerKey = consumerKey,
  35.         ConsumerSecret = consumerSecret,
  36.         SignatureMethod = SignatureMethod.HmacSha1,
  37.         UseHeaderForOAuthParameters = true
  38.  
  39.     };
  40.  
  41.     consumerContext.UseHeaderForOAuthParameters = true;
  42.  
  43.     OAuthSession oSession = new OAuthSession(consumerContext, "https://www.example.com",
  44.                             "https://www.example.com",
  45.                             "https://www.example.com");
  46.  
  47.  
  48.     oSession.AccessToken = new TokenBase
  49.     {
  50.         Token = accessToken,
  51.         ConsumerKey = consumerKey,
  52.         TokenSecret = accessTokenSecret
  53.     };
  54.  
  55.     IConsumerRequest consumerRequest = oSession.Request();
  56.     consumerRequest = ConsumerRequestExtensions.ForMethod(consumerRequest, webRequest.Method);
  57.     consumerRequest = ConsumerRequestExtensions.ForUri(consumerRequest, webRequest.RequestUri);
  58.     if (webRequest.Headers.Count > 0)
  59.     {
  60.         ConsumerRequestExtensions.AlterContext(consumerRequest, context => context.Headers = webRequest.Headers);
  61.         if (webRequest.Headers[HttpRequestHeader.ContentType] == "application/x-www-form-urlencoded")
  62.         {
  63.             Dictionary<string, string> formParameters = new Dictionary<string, string>();
  64.             foreach (string formParameter in requestBody.Split('&'))
  65.             {
  66.                 formParameters.Add(formParameter.Split('=')[0], formParameter.Split('=')[1]);
  67.             }
  68.             consumerRequest = consumerRequest.WithFormParameters(formParameters);
  69.         }
  70.     }
  71.  
  72.     consumerRequest = consumerRequest.SignWithToken();
  73.     return consumerRequest.Context.GenerateOAuthParametersForHeader();
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement