private IXmlRpcStreamRequestConfig GetConfig(HttpRequest request) { XmlRpcHttpRequestConfig rc = new XmlRpcHttpRequestConfig(); IXmlRpcHttpServerConfig serverConfig = (IXmlRpcHttpServerConfig)Config; rc.BasicEncoding = serverConfig.BasicEncoding; rc.ContentLengthOptional = serverConfig.ContentLengthOptional && (request.Headers[HttpHelper.ContentLengthHeader] == null); rc.EnabledForExtensions = serverConfig.EnabledForExtensions; rc.GzipCompressing = HttpHelper.HasGzipEncoding(request.Headers[HttpHelper.ContentEncodingHeader]); rc.GzipRequesting = HttpHelper.HasGzipEncoding(request.Headers[HttpHelper.AcceptEncodingHeader]); rc.Encoding = request.ContentEncoding.WebName; rc.EnabledForExceptions = serverConfig.EnabledForExceptions; HttpHelper.ParseAuthorization(rc, request.Headers[HttpHelper.AuthorizationHeader]); return rc; }
private IXmlRpcStreamRequestConfig GetConfig(HttpRequest request) { XmlRpcHttpRequestConfig rc = new XmlRpcHttpRequestConfig(); IXmlRpcHttpServerConfig serverConfig = (IXmlRpcHttpServerConfig)Config; rc.BasicEncoding = serverConfig.BasicEncoding; rc.ContentLengthOptional = serverConfig.ContentLengthOptional && (request.Headers[HttpHelper.ContentLengthHeader] == null); rc.EnabledForExtensions = serverConfig.EnabledForExtensions; rc.GzipCompressing = HttpHelper.HasGzipEncoding(request.Headers[HttpHelper.ContentEncodingHeader]); rc.GzipRequesting = HttpHelper.HasGzipEncoding(request.Headers[HttpHelper.AcceptEncodingHeader]); rc.Encoding = request.ContentEncoding.WebName; rc.EnabledForExceptions = serverConfig.EnabledForExceptions; HttpHelper.ParseAuthorization(rc, request.Headers[HttpHelper.AuthorizationHeader]); return(rc); }
private XmlRpcHttpRequestConfig GetConfig(ITransportHeaders requestHeaders) { XmlRpcHttpRequestConfig rc = new XmlRpcHttpRequestConfig(); IXmlRpcHttpServerConfig serverConfig = (IXmlRpcHttpServerConfig)Config; rc.BasicEncoding = serverConfig.BasicEncoding; rc.ContentLengthOptional = serverConfig.ContentLengthOptional && (HttpHelper.GetContentLength(requestHeaders) == null); rc.EnabledForExtensions = serverConfig.EnabledForExtensions; rc.GzipCompressing = HttpHelper.IsUsingGzipEncoding(requestHeaders); rc.GzipRequesting = HttpHelper.IsAcceptingGzipEncoding(requestHeaders); // TODO get request encoding //rc.Encoding rc.EnabledForExceptions = serverConfig.EnabledForExceptions; HttpHelper.ParseAuthorization(rc, HttpHelper.GetAuthorization(requestHeaders)); return(rc); }
public ServerProcessing ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, out IMessage responseMsg, out ITransportHeaders responseHeaders, out Stream responseStream) { if (requestHeaders["SOAPAction"] != null) { // pass to next sink if this is a SOAP request with SOAPAction header. return(NextChannelSink.ProcessMessage(sinkStack, requestMsg, requestHeaders, requestStream, out responseMsg, out responseHeaders, out responseStream)); } XmlRpcHttpRequestConfig requestConfig = GetConfig(requestHeaders); try { MethodCall call = DeserializeRequest(requestHeaders, requestStream, requestConfig); sinkStack.Push(this, call); // forward to next sink in chain - pass request stream as null to // indicate that we have deserialized the request NextChannelSink.ProcessMessage(sinkStack, call, requestHeaders, null, out responseMsg, out responseHeaders, out responseStream); SerializeResponse(responseMsg, ref responseHeaders, ref responseStream, requestConfig); } catch (Exception ex) { responseMsg = new ReturnMessage(ex, (IMethodCallMessage)requestMsg); responseStream = new MemoryStream(); XmlRpcResponseSerializer serializer = new XmlRpcResponseSerializer(); XmlRpcResponse faultResponse = new XmlRpcResponse(); faultResponse.Fault = new XmlRpcFault(0, ex.Message); serializer.WriteResponse(responseStream, faultResponse, requestConfig, TypeSerializerFactory); responseHeaders = new TransportHeaders(); responseHeaders["Content-Type"] = "text/xml; charset=\"utf-8\""; } return(ServerProcessing.Complete); }
private XmlRpcHttpRequestConfig GetConfig(ITransportHeaders requestHeaders) { XmlRpcHttpRequestConfig rc = new XmlRpcHttpRequestConfig(); IXmlRpcHttpServerConfig serverConfig = (IXmlRpcHttpServerConfig)Config; rc.BasicEncoding = serverConfig.BasicEncoding; rc.ContentLengthOptional = serverConfig.ContentLengthOptional && (HttpHelper.GetContentLength(requestHeaders) == null); rc.EnabledForExtensions = serverConfig.EnabledForExtensions; rc.GzipCompressing = HttpHelper.IsUsingGzipEncoding(requestHeaders); rc.GzipRequesting = HttpHelper.IsAcceptingGzipEncoding(requestHeaders); // TODO get request encoding //rc.Encoding rc.EnabledForExceptions = serverConfig.EnabledForExceptions; HttpHelper.ParseAuthorization(rc, HttpHelper.GetAuthorization(requestHeaders)); return rc; }