Example #1
0
        /// <summary>
        /// ストリーミング接続を行います。
        /// </summary>
        public StreamingConnection ConnectNew(
            CredentialProvider provider,
            StreamingDescription desc)
        {
            HttpWebRequest request;
            var            streaming = provider.RequestStreamingAPI(
                GetStreamingUri(desc.Type),
                GetStreamingMethod(desc.Type),
                BuildArguments(desc), out request);

            if (streaming == null)
            {
                throw new InvalidOperationException("接続に失敗しました。");
            }
            var con = new StreamingConnection(this, provider, request, streaming, desc.Timeout);

            if (con == null)
            {
                throw new InvalidOperationException("受信開始に失敗しました。");
            }
            lock (conLock)
            {
                connections.Add(con);
            }
            return(con);
        }
Example #2
0
        private IEnumerable <KeyValuePair <string, string> > BuildArguments(StreamingDescription desc)
        {
            List <KeyValuePair <string, string> > args = new List <KeyValuePair <string, string> >();

            if (desc.Delimited != null)
            {
                args.Add(new KeyValuePair <string, string>("delimited", desc.Delimited.Value.ToString()));
            }
            if (desc.Count != null)
            {
                args.Add(new KeyValuePair <string, string>("count", desc.Count.Value.ToString()));
            }
            if (!String.IsNullOrWhiteSpace(desc.Follow))
            {
                args.Add(new KeyValuePair <string, string>("follow", HttpUtility.UrlEncodeStrict(desc.Follow, Encoding.UTF8, true)));
            }
            if (!String.IsNullOrWhiteSpace(desc.Track))
            {
                args.Add(new KeyValuePair <string, string>("track", HttpUtility.UrlEncodeStrict(desc.Track, Encoding.UTF8, true)));
            }
            if (!String.IsNullOrWhiteSpace(desc.Locations))
            {
                args.Add(new KeyValuePair <string, string>("locations", HttpUtility.UrlEncodeStrict(desc.Locations, Encoding.UTF8, true)));
            }
            if (desc.RepliesAll.GetValueOrDefault())
            {
                args.Add(new KeyValuePair <string, string>("replies", "all"));
            }
            if (!String.IsNullOrWhiteSpace(desc.With))
            {
                args.Add(new KeyValuePair <string, string>("with", HttpUtility.UrlEncodeStrict(desc.With, Encoding.UTF8, true)));
            }
            return(args);
        }
Example #3
0
 /// <summary>
 /// ストリーミング接続を行います。
 /// </summary>
 public StreamingConnection ConnectNew(
     CredentialProvider provider,
     StreamingDescription desc)
 {
     HttpWebRequest request;
     var streaming = provider.RequestStreamingAPI(
         GetStreamingUri(desc.Type),
         GetStreamingMethod(desc.Type),
         BuildArguments(desc), out request);
     if (streaming == null)
         throw new InvalidOperationException("接続に失敗しました。");
     var con = new StreamingConnection(this, provider, request, streaming, desc.Timeout);
     if (con == null)
         throw new InvalidOperationException("受信開始に失敗しました。");
     lock (conLock)
     {
         connections.Add(con);
     }
     return con;
 }
Example #4
0
 private IEnumerable<KeyValuePair<string, string>> BuildArguments(StreamingDescription desc)
 {
     List<KeyValuePair<string, string>> args = new List<KeyValuePair<string, string>>();
     if (desc.Delimited != null)
         args.Add(new KeyValuePair<string, string>("delimited", desc.Delimited.Value.ToString()));
     if (desc.Count != null)
         args.Add(new KeyValuePair<string, string>("count", desc.Count.Value.ToString()));
     if (!String.IsNullOrWhiteSpace(desc.Follow))
         args.Add(new KeyValuePair<string, string>("follow", HttpUtility.UrlEncodeStrict(desc.Follow, Encoding.UTF8, true)));
     if (!String.IsNullOrWhiteSpace(desc.Track))
         args.Add(new KeyValuePair<string, string>("track", HttpUtility.UrlEncodeStrict(desc.Track, Encoding.UTF8, true)));
     if (!String.IsNullOrWhiteSpace(desc.Locations))
         args.Add(new KeyValuePair<string, string>("locations", HttpUtility.UrlEncodeStrict(desc.Locations, Encoding.UTF8, true)));
     if (desc.RepliesAll.GetValueOrDefault())
         args.Add(new KeyValuePair<string, string>("replies", "all"));
     if (!String.IsNullOrWhiteSpace(desc.With))
         args.Add(new KeyValuePair<string, string>("with", HttpUtility.UrlEncodeStrict(desc.With, Encoding.UTF8, true)));
     return args;
 }