Exemplo n.º 1
0
        private static WebRequest BuildRequest(IUriBuilder uriBuilder, HttpMethod method, Dictionary <string, object> parameters, byte[] body, out Func <int, string, string> buildExceptionMessage)
        {
            var uri     = method != HttpMethod.Put ? uriBuilder.AddQueryParameters(parameters).Build() : uriBuilder.Build();
            var request = WebRequest.Create(uri);

            request.Method = method.GetParameterName();

            request.ContentType = "application/json";

            body = body ?? new byte[0];
            if (method == HttpMethod.Put)
            {
                var serializer = new SoundCloud.API.Client.Internal.Infrastructure.Serialization.JsonSerializer();
                var serialized = serializer.Serialize(parameters);
                body = Encoding.UTF8.GetBytes(serialized);
            }
            if ((method == HttpMethod.Post || method == HttpMethod.Put) && body.Length > 0)
            {
                request.ContentLength = body.Length;
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(body, 0, body.Length);
                    requestStream.Flush();
                }
            }
            else
            {
                request.ContentLength = 0;
            }

            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");

            buildExceptionMessage = (statusCode, content) =>
                                    string.Format("WebRequest exception. Parameters: method = {1}, uri = {0}. Response: {2} - {3}.", uri.AbsoluteUri, method, statusCode, content);
            return(request);
        }
Exemplo n.º 2
0
        private static WebRequest BuildRequest(IUriBuilder uriBuilder, HttpMethod method, Dictionary<string, object> parameters, byte[] body, out Func<int, string, string> buildExceptionMessage)
        {
            var uri = method != HttpMethod.Put ? uriBuilder.AddQueryParameters(parameters).Build() : uriBuilder.Build();
            var request = WebRequest.Create(uri);

            request.Method = method.GetParameterName();

            request.ContentType = "application/json";

            body = body ?? new byte[0];
            if (method == HttpMethod.Put)
            {
                var serializer = new SoundCloud.API.Client.Internal.Infrastructure.Serialization.JsonSerializer();
                var serialized = serializer.Serialize(parameters);
                body = Encoding.UTF8.GetBytes(serialized);

            }
            if ((method == HttpMethod.Post || method == HttpMethod.Put) && body.Length > 0)
            {
                request.ContentLength = body.Length;
                using (var requestStream = request.GetRequestStream())
                {
                    requestStream.Write(body, 0, body.Length);
                    requestStream.Flush();
                }
            }
            else
            {
                request.ContentLength = 0;
            }

            request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");

            buildExceptionMessage = (statusCode, content) =>
                string.Format("WebRequest exception. Parameters: method = {1}, uri = {0}. Response: {2} - {3}.", uri.AbsoluteUri, method, statusCode, content);
            return request;
        }