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