Dev2.Activities.WebRequestInvoker.ExecuteRequest C# (CSharp) Method

ExecuteRequest() public method

public ExecuteRequest ( int timeoutMilliseconds, string method, string url, string data, string>.List headers = null, Action asyncCallback = null ) : string
timeoutMilliseconds int
method string
url string
data string
headers string>.List
asyncCallback Action
return string
        public string ExecuteRequest(int timeoutMilliseconds, string method, string url, string data, List<Tuple<string, string>> headers = null, Action<string> asyncCallback = null)
        {
            using (var webClient = new WebClientWithTimeout(timeoutMilliseconds))
            {
                webClient.Credentials = CredentialCache.DefaultCredentials;

                if (headers != null)
                {
                    foreach (var header in headers)
                    {
                        webClient.Headers.Add(header.Item1, header.Item2);
                    }
                }

                var uri = new Uri(url.Contains("http://") || url.Contains("https://") ? url : "http://" + url);

                switch (method)
                {
                    case "GET":
                        if (asyncCallback == null)
                        {
                            return webClient.DownloadString(uri);
                        }
                        webClient.DownloadStringCompleted += (sender, args) => asyncCallback(args.Result);
                        webClient.DownloadStringAsync(uri, null);
                        break;
                    case "POST":
                        if (asyncCallback == null)
                        {
                            return webClient.UploadString(uri, data);
                        }
                        webClient.UploadStringCompleted += (sender, args) => asyncCallback(args.Result);
                        webClient.UploadStringAsync(uri, data);
                        break;
                }
            }
            return string.Empty;
        }

Same methods

WebRequestInvoker::ExecuteRequest ( string method, string url ) : string
WebRequestInvoker::ExecuteRequest ( string method, string url, string>.List headers ) : string
WebRequestInvoker::ExecuteRequest ( string method, string url, string>.List headers, int timeoutMilliseconds ) : string
WebRequestInvoker::ExecuteRequest ( string method, string url, string data, string>.List headers = null, Action asyncCallback = null ) : string

Usage Example

        ErrorResultTO TryExecute(IDSFDataObject dataObject, int update, ErrorResultTO allErrors)
        {
            allErrors.MergeErrors(_errorsTo);
            if (dataObject.IsDebugMode())
            {
                var debugItem = new DebugItem();
                AddDebugItem(new DebugEvalResult(Url, "URL", dataObject.Environment, update), debugItem);
                _debugInputs.Add(debugItem);
            }
            var colItr    = new WarewolfListIterator();
            var urlitr    = new WarewolfIterator(dataObject.Environment.Eval(Url, update));
            var headerItr = new WarewolfIterator(dataObject.Environment.Eval(Headers, update));

            colItr.AddVariableToIterateOn(urlitr);
            colItr.AddVariableToIterateOn(headerItr);
            var counter = 1;

            while (colItr.HasMoreData())
            {
                var c           = colItr.FetchNextValue(urlitr);
                var headerValue = colItr.FetchNextValue(headerItr);
                var headers     = string.IsNullOrEmpty(headerValue)
                    ? new string[0]
                    : headerValue.Split(new[] { '\n', '\r', ';' }, StringSplitOptions.RemoveEmptyEntries);

                var headersEntries = new List <Tuple <string, string> >();

                AddHeaderDebug(dataObject, update, headers, headersEntries);
                var timeoutSecondsError = false;
                if (!string.IsNullOrEmpty(TimeOutText))
                {
                    timeoutSecondsError = SetTimeoutSecondsError(dataObject, update, allErrors, timeoutSecondsError);

                    if (dataObject.IsDebugMode())
                    {
                        var debugItem = new DebugItem();
                        AddDebugItem(new DebugEvalResult(String.IsNullOrEmpty(TimeOutText) ? "100" : TimeOutText, "Time Out Seconds", dataObject.Environment, update), debugItem);
                        _debugInputs.Add(debugItem);
                    }
                }

                if (!timeoutSecondsError)
                {
                    var result = WebRequestInvoker.ExecuteRequest(Method,
                                                                  c,
                                                                  headersEntries, TimeoutSeconds == 0 ? Timeout.Infinite : TimeoutSeconds * 1000 // important to list the parameter name here to see the conversion from seconds to milliseconds
                                                                  );

                    allErrors.MergeErrors(_errorsTo);
                    PushResultsToDataList(Result, result, dataObject, update == 0 ? counter : update);
                    counter++;
                }
                else
                {
                    throw new ApplicationException("Execution aborted - see error messages.");
                }
            }
            return(allErrors);
        }
All Usage Examples Of Dev2.Activities.WebRequestInvoker::ExecuteRequest
WebRequestInvoker