/// <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); }
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); }
/// <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; }
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; }