Foretagsplatsen.Api2.OAuthRestClient.CreateRequest C# (CSharp) Method

CreateRequest() public method

Add OAuth signing to requests and executes the request.
public CreateRequest ( string httpMethod, string url, object arguments ) : HttpWebRequest
httpMethod string HTTP Verb (GET, POST, PUT, DELETE)
url string Url to execute the request against.
arguments object Query arguments
return System.Net.HttpWebRequest
        public override HttpWebRequest CreateRequest(string httpMethod, string url, object arguments)
        {
            var session = OAuthService.CreateSession(credentials, BaseUrl, String.Empty);

            var request = session
                .Request()
                .ForMethod(httpMethod)
                .ForUrl(url)
                .AlterHttpWebRequest(httpRequest => httpRequest.ContentType = "application/json")
                .AlterContext(context => context.UseQueryParametersForOAuth = true)
                .SignWithToken(credentials.Token)
                .AlterHttpWebRequest(httpRequest => httpRequest.Timeout = 30*60*1000)
                .AlterHttpWebRequest(httpRequest => httpRequest.ReadWriteTimeout = 30*60*1000);

            if (arguments != null && (httpMethod == "POST" || httpMethod == "PUT"))
            {
                request.ConsumerContext.EncodeRequestBody = false;
                request.WithBody(arguments.ToString());
            }
            else if (httpMethod == "POST" || httpMethod == "PUT")
            {
                request.AlterHttpWebRequest(httpRequest => httpRequest.ContentLength = 0);
            }

            if (arguments != null && (httpMethod == "GET" || httpMethod == "DELETE"))
            {
                request.WithQueryParameters(arguments);
            }

            var httpWebRequest = ((ConsumerRequest) request).ToWebRequest();

            return httpWebRequest;
        }