Exemple #1
0
        protected object Invoke(string methodName, string requestUrl, object[] parameters)
        {
            HttpSimpleMethodStubInfo method          = (HttpSimpleMethodStubInfo)TypeStub.GetMethod(methodName);
            MimeParameterWriter      parameterWriter = (MimeParameterWriter)method.ParameterWriterType.Create();

            string     url     = parameterWriter.GetRequestUrl(requestUrl, parameters);
            WebRequest request = GetWebRequest(new Uri(url, true));

            parameterWriter.InitializeRequest(request, parameters);

            if (parameterWriter.UsesWriteRequest)
            {
                Stream stream = request.GetRequestStream();
                parameterWriter.WriteRequest(stream, parameters);
                stream.Close();
            }

            WebResponse response = GetWebResponse(request);

            MimeReturnReader returnReader = (MimeReturnReader)method.ReturnReaderType.Create();

            return(returnReader.Read(response, response.GetResponseStream()));
        }
        /// <include file='doc\HttpClientProtocol.uex' path='docs/doc[@for="HttpSimpleClientProtocol.Invoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Invokes a method of a HTTP web service.
        ///    </para>
        /// </devdoc>
        protected object Invoke(string methodName, string requestUrl, object[] parameters)
        {
            WebResponse         response    = null;
            HttpClientMethod    method      = GetClientMethod(methodName);
            MimeParameterWriter paramWriter = GetParameterWriter(method);
            Uri requestUri = new Uri(requestUrl);

            if (paramWriter != null)
            {
                paramWriter.RequestEncoding = RequestEncoding;
                requestUrl = paramWriter.GetRequestUrl(requestUri.AbsoluteUri, parameters);
                requestUri = new Uri(requestUrl, true);
            }
            WebRequest request = null;

            try {
                request = GetWebRequest(requestUri);
                NotifyClientCallOut(request);
                PendingSyncRequest = request;
                if (paramWriter != null)
                {
                    paramWriter.InitializeRequest(request, parameters);
                    //


                    if (paramWriter.UsesWriteRequest)
                    {
                        if (parameters.Length == 0)
                        {
                            request.ContentLength = 0;
                        }
                        else
                        {
                            Stream requestStream = null;
                            try {
                                requestStream = request.GetRequestStream();
                                paramWriter.WriteRequest(requestStream, parameters);
                            }
                            finally {
                                if (requestStream != null)
                                {
                                    requestStream.Close();
                                }
                            }
                        }
                    }
                }
                response = GetWebResponse(request);
                Stream responseStream = null;
                if (response.ContentLength != 0)
                {
                    responseStream = response.GetResponseStream();
                }

                return(ReadResponse(method, response, responseStream));
            }
            finally {
                if (request == PendingSyncRequest)
                {
                    PendingSyncRequest = null;
                }
            }
        }
Exemple #3
0
        /// <include file='doc\HttpClientProtocol.uex' path='docs/doc[@for="HttpSimpleClientProtocol.Invoke"]/*' />
        /// <devdoc>
        ///    <para>
        ///       Invokes a method of a HTTP web service.
        ///    </para>
        /// </devdoc>
        protected object Invoke(string methodName, string requestUrl, object[] parameters)
        {
            WebResponse         response    = null;
            HttpClientMethod    method      = GetClientMethod(methodName);
            MimeParameterWriter paramWriter = GetParameterWriter(method);
            Uri requestUri = new Uri(requestUrl);

            if (paramWriter != null)
            {
                paramWriter.RequestEncoding = RequestEncoding;
                requestUrl = paramWriter.GetRequestUrl(requestUri.AbsoluteUri, parameters);
                requestUri = new Uri(requestUrl, true);
            }
            WebRequest request = null;

            try {
                request            = GetWebRequest(requestUri);
                PendingSyncRequest = request;
                if (paramWriter != null)
                {
                    paramWriter.InitializeRequest(request, parameters);
                    // CONSIDER,yannc: in future versions when we allow pluggable protocols
                    //      we may want to let them write in the request stream even
                    //      if there are no parameters.
                    if (paramWriter.UsesWriteRequest)
                    {
                        if (parameters.Length == 0)
                        {
                            request.ContentLength = 0;
                        }
                        else
                        {
                            Stream requestStream = null;
                            try {
                                requestStream = request.GetRequestStream();
                                paramWriter.WriteRequest(requestStream, parameters);
                            }
                            finally {
                                if (requestStream != null)
                                {
                                    requestStream.Close();
                                }
                            }
                        }
                    }
                }
                response = GetWebResponse(request);
                Stream responseStream = null;
                if (response.ContentLength != 0)
                {
                    responseStream = response.GetResponseStream();
                }

                return(ReadResponse(method, response, responseStream));
            }
            finally {
                if (request == PendingSyncRequest)
                {
                    PendingSyncRequest = null;
                }
            }
        }
Exemple #4
0
        protected object Invoke(string methodName, string requestUrl, object[] parameters)
        {
            WebResponse         webResponse = null;
            object              obj2;
            HttpClientMethod    clientMethod    = this.GetClientMethod(methodName);
            MimeParameterWriter parameterWriter = this.GetParameterWriter(clientMethod);
            Uri uri = new Uri(requestUrl);

            if (parameterWriter != null)
            {
                parameterWriter.RequestEncoding = base.RequestEncoding;
                requestUrl = parameterWriter.GetRequestUrl(uri.AbsoluteUri, parameters);
                uri        = new Uri(requestUrl, true);
            }
            WebRequest webRequest = null;

            try
            {
                webRequest = this.GetWebRequest(uri);
                base.NotifyClientCallOut(webRequest);
                base.PendingSyncRequest = webRequest;
                if (parameterWriter != null)
                {
                    parameterWriter.InitializeRequest(webRequest, parameters);
                    if (parameterWriter.UsesWriteRequest)
                    {
                        if (parameters.Length == 0)
                        {
                            webRequest.ContentLength = 0L;
                        }
                        else
                        {
                            Stream requestStream = null;
                            try
                            {
                                requestStream = webRequest.GetRequestStream();
                                parameterWriter.WriteRequest(requestStream, parameters);
                            }
                            finally
                            {
                                if (requestStream != null)
                                {
                                    requestStream.Close();
                                }
                            }
                        }
                    }
                }
                webResponse = this.GetWebResponse(webRequest);
                Stream responseStream = null;
                if (webResponse.ContentLength != 0L)
                {
                    responseStream = webResponse.GetResponseStream();
                }
                obj2 = this.ReadResponse(clientMethod, webResponse, responseStream);
            }
            finally
            {
                if (webRequest == base.PendingSyncRequest)
                {
                    base.PendingSyncRequest = null;
                }
            }
            return(obj2);
        }