Advertisement
IDNPeterL

HttpWebRequest/DevDefined - QBO Static Base URL

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