public void OAuthHeader() { OAuthParameters testOAuthParameters = TestOAuthParameters(); OauthHeader oauthHeader = new OauthHeader(testOAuthParameters); Assert.AreEqual("OAuth oauth_consumer_key=\"xvz1evFS4wEEPTGEFPHBog\", oauth_nonce=\"kYjzVBB8Y0ZFabxSWbWovY3uYSQ2pTgmZeNu2VS4cg\", oauth_signature=\"tnnArxj06cWHq44gCs1OSKk%2FjLY%3D\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1318622958\", oauth_token=\"370773112-GmHxMAgYyLbNEtIKZeRNFsMKPR9EyMZeS9weJAEb\", oauth_version=\"1.0\"" , oauthHeader.ToString()); }
private void Stream(string hashTag) { logger.Info("Start Streaming Hash: {0}", hashTag); string resourceUrl = Twitter.STREAMING_API_V1_1 + "statuses/filter.json"; HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(resourceUrl); webRequest.Method = "POST"; webRequest.ContentType = "application/x-www-form-urlencoded"; webRequest.Timeout = -1; // This is the content var postData = new List<KeyValuePair<string, string>>(); postData.Add(new KeyValuePair<string, string>("track", hashTag)); // sign Request OAuthParameters oAuthParameters = new OAuthParameters(this.authorization, resourceUrl, postData, new List<KeyValuePair<string, string>>()); OauthHeader oauthHeader = new OauthHeader(oAuthParameters); webRequest.Headers.Add("Authorization", oauthHeader.ToString()); webRequest.AddPostData(postData); Encoding encode = System.Text.Encoding.GetEncoding("utf-8"); var webResponse = (HttpWebResponse)webRequest.GetResponse(); var responseStream = new StreamReader(webResponse.GetResponseStream(), encode); logger.Info("Stream Initialized. Entering listening mode..."); this.processor.SetStartTime(); //Read the stream. while (!this.cancel) { string jsonText = responseStream.ReadLine(); logger.Debug("Recieved from twitter:" + jsonText); this.processor.Process(jsonText); } this.processor.SetEndTime(); //Abort is needed or responseStream.Close() will hang. webRequest.Abort(); responseStream.Close(); webResponse.Close(); this.Canceled = true; }