// Token: 0x0600120B RID: 4619 RVA: 0x0006D974 File Offset: 0x0006BB74
        internal void BeginSend(OwaContext owaContext, HttpRequest originalRequest, string targetUrl, string proxyRequestBody, AsyncCallback callback, object extraData)
        {
            ExTraceGlobals.ProxyCallTracer.TraceDebug((long)this.GetHashCode(), "ProxyProtocolRequest.BeginSend");
            Uri uri = new UriBuilder(owaContext.SecondCasUri.Uri)
            {
                Path = targetUrl
            }.Uri;
            HttpWebRequest proxyRequestInstance = ProxyUtilities.GetProxyRequestInstance(originalRequest, owaContext, uri);

            proxyRequestInstance.ContentLength = (long)((proxyRequestBody != null) ? Encoding.UTF8.GetByteCount(proxyRequestBody) : 0);
            proxyRequestInstance.Method        = "POST";
            this.proxyRequest     = proxyRequestInstance;
            this.proxyRequestBody = proxyRequestBody;
            this.owaContext       = owaContext;
            this.asyncResult      = new OwaAsyncResult(callback, extraData);
            proxyRequestInstance.BeginGetRequestStream(new AsyncCallback(this.GetRequestStreamCallback), this);
        }
예제 #2
0
        // Token: 0x060011EB RID: 4587 RVA: 0x0006C3FC File Offset: 0x0006A5FC
        private void SendProxyRequest()
        {
            ExTraceGlobals.ProxyCallTracer.TraceDebug((long)this.GetHashCode(), "ProxyEventHandler.SendProxyRequest");
            if (base.OwaContext.SecondCasUri.ProxyPingResult == ProxyPingResult.Unknown)
            {
                this.SendProxyPingRequest();
                return;
            }
            HttpWebRequest proxyRequestInstance = ProxyUtilities.GetProxyRequestInstance(this.OriginalRequest, base.OwaContext, this.proxyRequestUrl);

            proxyRequestInstance.Method = ((base.Verb == OwaEventVerb.Post) ? "POST" : "GET");
            this.proxyRequest           = proxyRequestInstance;
            if (base.Verb == OwaEventVerb.Post)
            {
                this.proxyRequest.BeginGetRequestStream(new AsyncCallback(this.GetProxyRequestStreamCallback), this);
                return;
            }
            this.requestTimedOut = false;
            IAsyncResult asyncResult = ProxyUtilities.BeginGetResponse(this.proxyRequest, new AsyncCallback(this.GetProxyResponseCallback), this, out this.requestClock);

            this.timeoutWaitHandle = ThreadPool.RegisterWaitForSingleObject(asyncResult.AsyncWaitHandle, new WaitOrTimerCallback(this.RequestTimeoutCallback), asyncResult, (long)this.HttpContext.Server.ScriptTimeout * 1000L, true);
        }