Ejemplo n.º 1
0
        public QuarkClient(string uriHTTP, string uriStream, IReactivixNetworkTransport transport)
        {
            BaseHTTPURI   = ReactivixURI.FromURI(uriHTTP);
            BaseStreamURI = ReactivixURI.FromURI(uriStream);

            ClientHTTP     = new ReactivixHTTPClient();
            ResponsePacket = new ReactivixHTTPPacket(new ReactivixJSONIOProcessor());

            ClientStream = new QuarkNetworkClient(transport, BaseStreamURI.Host, BaseStreamURI.Port);

            OAuth = new OAuthClient(BaseHTTPURI.Copy());
        }
        public void SendRequest <TResponse>(string uri, ReactivixHTTPPacket request, ReactivixHTTPPacket response, Action <ReactivixHTTPPacket> onResponse = null, Action <Exception> onError = null)
        {
            ReactivixURI URI = ReactivixURI.FromURI(uri);

            if (URI.Port == 0)
            {
                if (URI.Scheme == SCHEME_HTTP)
                {
                    URI.Port = PORT_HTTP;
                }
                if (URI.Scheme == SCHEME_HTTPS)
                {
                    URI.Port = PORT_HTTPS;
                }
            }

            if (request.Processor == null)
            {
                request.Processor = new ReactivixFormIOProcessor();
            }
            if (response.Processor == null)
            {
                response.Processor = new ReactivixPlainIOProcessor();
            }

            request.URI = URI;
            request.Headers.Add(new KeyValuePair <string, string>("Accept", response.Processor.MIME));

            response.URI      = URI;
            response.DataType = typeof(TResponse);

            _tasks.Add(new ReactivixHTTPClientTask {
                OnResponse = onResponse,
                OnError    = onError,
                Request    = request.Copy(),
                Response   = response.Copy()
            });
        }