Esempio n. 1
2
        private CustomResponse HttpRequest(IRestRequest request, string url, Dictionary<string, string> parameters = null)
        {
            try
            {
                IRestClient client = new RestClient();
                IRestResponse response = new RestResponse();

                client.BaseUrl = new Uri(url);
                if (parameters != null)
                {
                    foreach (var item in parameters)
                    {
                        request.AddParameter(item.Key, item.Value);
                    }
                }
                response = client.Execute(request);
                var myResponse = new CustomResponse();
                myResponse.StatusCode = response.StatusCode;
                myResponse.Content = response.Content;
                return myResponse;
            }
            catch(Exception ex)
            {
                throw ex;
            }
            
        }
        public override void AddFilter(IRestRequest request)
        {
            base.AddFilter(request);

            if (MinimumId != null)
            {
                request.AddParameter("min_id", MinimumId, ParameterType.GetOrPost);
            }
            if (MaximumId != null)
            {
                request.AddParameter("max_id", MaximumId, ParameterType.GetOrPost);
            }
            if (Name != null)
            {
                request.AddParameter("name", Name, ParameterType.GetOrPost);
            }
            if (ParentId != null)
            {
                request.AddParameter("parent_id", ParentId, ParameterType.GetOrPost);
            }
            if (IsVisible != null)
            {
                request.AddParameter("is_visible", IsVisible, ParameterType.GetOrPost);
            }
        }
Esempio n. 3
0
        public override void AddFilter(IRestRequest request) {
            base.AddFilter(request);

            if (StateName != null) {
                request.AddParameter("state", StateName, ParameterType.GetOrPost);
            }
            if (StateAbbreviation != null) {
                request.AddParameter("state_abbreviation", StateAbbreviation, ParameterType.GetOrPost);
            }
        }
        public override void AddFilter(IRestRequest request) {
            base.AddFilter(request);

            if (CountryName != null) {
                request.AddParameter("country", CountryName, ParameterType.GetOrPost);
            }
            if (CountryIso2 != null) {
                request.AddParameter("country_iso2", CountryIso2, ParameterType.GetOrPost);
            }
            if (CountryIso3 != null) {
                request.AddParameter("country_iso3", CountryIso3, ParameterType.GetOrPost);
            }
        }
        public void Populate(IRestRequest request)
        {
            if (!string.IsNullOrEmpty(_bankAccount.Description))
                request.AddParameter("description", _bankAccount.Description);

            request.AddParameter("routing_number", _bankAccount.RoutingNumber);
            request.AddParameter("account_number", _bankAccount.AccountNumber);
            request.AddParameter("account_type", _bankAccount.AccountType == AccountType.Company ? "company" : "individual");
            request.AddParameter("signatory", _bankAccount.Signatory);

            if(_bankAccount.MetaData != null)
                new MetaDataPopulator(_bankAccount.MetaData).Populate(request);
        }
Esempio n. 6
0
        public virtual void AddFilter(IRestRequest request)
        {
            if (this.IfModifiedSince != null)
                request.AddHeader("If-Modified-Since", String.Format(RFC2822_DATE_FORMAT, this.IfModifiedSince));

            if (this.Limit != null)
            {
                request.AddParameter("limit", Limit, ParameterType.GetOrPost);
            }
            if (this.Page != null)
            {
                request.AddParameter("page", Page, ParameterType.GetOrPost);
            }
        }
        public override void AddFilter(IRestRequest request)
        {
            base.AddFilter(request);

            if (this.Name != null)
            {
                request.AddParameter("name", this.Name, ParameterType.GetOrPost);
            }

            if (this.IsDefault != null)
            {
                request.AddParameter("is_default", this.IsDefault, ParameterType.GetOrPost);
            }
        }
        public override void AddFilter(IRestRequest request) {
            base.AddFilter(request);

            if (this.Name != null) {
                request.AddParameter("name", this.Name, ParameterType.GetOrPost);
            }

            if (this.DisplayName != null) {
                request.AddParameter("display_name", this.DisplayName, ParameterType.GetOrPost);
            }

            if (this.OptionType != null) {
                request.AddParameter("type", this.OptionType, ParameterType.GetOrPost);
            }
        }
        public void Populate(IRestRequest request)
        {
            var addressPopulator = new AddressPopulator(_address);
            addressPopulator.Populate(request);
            if (_addressInfo.Description != null) request.AddParameter("description", _addressInfo.Description);
            if (_addressInfo.MetaData != null)
            {
                var populator = new MetaDataPopulator(_addressInfo.MetaData);
                populator.Populate(request);
            }

            if (_addressInfo.Name != null) request.AddParameter("name", _addressInfo.Name);
            if (_addressInfo.Phone != null) request.AddParameter("phone", _addressInfo.Phone);
            if (_addressInfo.Email != null) request.AddParameter("email", _addressInfo.Email);
            if (_addressInfo.Company != null) request.AddParameter("company", _addressInfo.Company);
        }
 /// <summary>
 /// Modifies the request to ensure that the authentication requirements are met.
 /// </summary>
 /// <param name="client">Client executing this request</param>
 /// <param name="request">Request to authenticate</param>
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     // only add the Authorization parameter if it hasn't been added by a previous Execute
     if (request.Parameters.Any(p => p.Name != null && p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
         return;
     request.AddParameter("Authorization", this._authHeader, ParameterType.HttpHeader);
 }
 private void PopulateRoutes(IRestRequest request)
 {
     foreach (var route in _definition.Routes)
     {
         request.AddParameter("routes", route.ToString());
     }
 }
Esempio n. 12
0
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     if(!request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
     {
         request.AddParameter("Authorization", "SuTToken " + _token, ParameterType.HttpHeader);
     }
 }
        public void Authenticate(IRestClient client, IRestRequest request)
        {
            if (request.Parameters.Exists(p => p.Name.Equals("Cookie", StringComparison.InvariantCultureIgnoreCase)))
                return;

            request.AddParameter("cookie", _authHeader, ParameterType.HttpHeader);
        }
 public override void Authenticate(IRestClient client, IRestRequest request)
 {
     // only add the Authorization parameter if it hasn't been added.
     if (!request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
     {
         request.AddParameter("Authorization", _authorizationValue, ParameterType.HttpHeader);
     }
 }
Esempio n. 15
0
 public void Populate(IRestRequest request)
 {
     if (_data == null) return;
     foreach (var kvp in _data)
     {
         request.AddParameter(string.Format("data[{0}]", kvp.Key), kvp.Value);
     }
 }
 public void Populate(IRestRequest request)
 {
     if (!string.IsNullOrEmpty(_definition.Description))
         request.AddParameter("description", _definition.Description);
     PopulateRoutes(request);
     PopulateSubEntities(request);
     PopulateTargetType(request);
 }
 /// <summary>
 /// Modifies the request to ensure that the authentication requirements are met.
 /// </summary>
 /// <param name="client">Client executing this request</param>
 /// <param name="request">Request to authenticate</param>
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     if (HasDigestHeader)
     {
         var digestHeader = GetDigestHeader(client, request);
         request.AddParameter("Authorization", digestHeader, ParameterType.HttpHeader);
     }
 }
        public void Authenticate(IRestClient client, IRestRequest request)
        {
            if (!string.IsNullOrEmpty(AccessToken))
            {
                request.AddHeader("Authorization", string.Format("Bearer {0}", AccessToken));
            }

            request.AddParameter("app_key", AppKey);
        }
 /// <summary>
 /// Modifies the request to ensure that the authentication requirements are met.
 /// </summary>
 /// <param name="client">Client executing this request</param>
 /// <param name="request">Request to authenticate</param>
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     // only add the Authorization parameter if it hasn't been added by a previous Execute
     if (request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
         return;
     var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", _username, _password)));
     var authHeader = string.Format("Basic {0}", token);
     request.AddParameter("Authorization", authHeader, ParameterType.HttpHeader);
 }
 public void Populate(IRestRequest request)
 {
     if (_target.AddressId != null)
     {
         request.AddParameter(_type, _target.AddressId);
     }
     else
     {
         var addressPopulator = new AddressPopulator(_target.Address, _type);
         addressPopulator.Populate(request);
     }
 }
Esempio n. 21
0
 public void Populate(IRestRequest request)
 {
     if (_address.Name != null) request.AddParameter(Wrap("name"), _address.Name);
     if (_address.Line1 != null) request.AddParameter(Wrap("address_line1"), _address.Line1);
     if (_address.Line2 != null) request.AddParameter(Wrap("address_line2"), _address.Line2);
     if (_address.City != null) request.AddParameter(Wrap("address_city"), _address.City);
     if (_address.State != null) request.AddParameter(Wrap("address_state"), _address.State);
     if (_address.ZipCode != null) request.AddParameter(Wrap("address_zip"), _address.ZipCode);
     if (_address.Country != null) request.AddParameter(Wrap("address_country"), _address.Country);
 }
        public void Populate(IRestRequest request)
        {
            var toPopulator = new TargetAddressPopulator(_letterDefinition.ToAddress, "to");
            var fromPopulator = new TargetAddressPopulator(_letterDefinition.FromAddress, "from");
            var filePopulator = new LobImageFilePopulator(_letterDefinition.File, "file");
            var dataPopulator = new DataPopulator(_letterDefinition.Data);
            var metadataPopulator = new MetaDataPopulator(_letterDefinition.MetaData);

            toPopulator.Populate(request);
            fromPopulator.Populate(request);
            filePopulator.Populate(request);
            dataPopulator.Populate(request);
            metadataPopulator.Populate(request);

            request.AddParameter("color", _letterDefinition.Color);
            request.AddParameter("description", _letterDefinition.Description);
            request.AddParameter("double_sided", _letterDefinition.DoubleSided);

            PopulateReturnEnvelope(request);
            PopulateAddressPlacement(request);
            PopulateExtraService(request);
        }
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     // NetworkCredentials always makes two trips, even if with PreAuthenticate,
     // it is also unsafe for many partial trust scenarios
     // request.Credentials = Credentials;
     // thanks TweetSharp!
     // request.Credentials = new NetworkCredential(username, password);
     // only add the Authorization parameter if it hasn't been added by a previous Execute
     if (!request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
     {
         request.AddParameter("Authorization", this.authHeader, ParameterType.HttpHeader);
     }
 }
Esempio n. 24
0
		protected async Task<string> ExecuteTaskASync(IRestRequest request)
		{
			//Workaround to invalidate WebRequest cache from client
			request.AddParameter("no-cache", Guid.NewGuid());

			var response = await RestClient.ExecuteTaskAsync(request);

			if (response.ErrorException != null)
				throw response.ErrorException;

			HttpRequestHelper.HandleHttpCodes(response.StatusCode);

			return response.Content;
		}
Esempio n. 25
0
        public override void AddFilter(IRestRequest request) {
            base.AddFilter(request);

            if (this.CouponCode != null) {
                request.AddParameter("code", this.CouponCode, ParameterType.GetOrPost);
            }

            if (this.CouponType != null) {
                request.AddParameter("type", this.CouponType, ParameterType.GetOrPost);
            }

            if (this.Name != null) {
                request.AddParameter("name", this.Name, ParameterType.GetOrPost);
            }

            if (this.MinId != null) {
                request.AddParameter("min_id", this.MinId, ParameterType.GetOrPost);
            }

            if (this.MaxId != null) {
                request.AddParameter("max_id", this.MaxId, ParameterType.GetOrPost);
            }
        }
        private void PopulateAddressPlacement(IRestRequest request)
        {
            var value = "";
            switch (_letterDefinition.AddressPlacement)
            {
                case AddressPlacement.InsertBlankPage:
                    value = "insert_blank_page";
                    break;
                case AddressPlacement.TopFirstPage:
                    value = "top_first_page";
                    break;
            }

            request.AddParameter("address_placement", value);
        }
        private void PopulateTargetType(IRestRequest request)
        {
            var value = "";
            switch (_definition.TargetType)
            {
                case TargetType.All:
                    value = "all";
                    break;
                case TargetType.Residential:
                    value = "residential";
                    break;
            }

            request.AddParameter("target_type", value);
        }
        public void Authenticate(IRestClient client, IRestRequest request)
        {
            var nonce = GetNonce();

            var url = client.BuildUri(request);

            request.AddParameter("nonce", nonce, ParameterType.GetOrPost);
            var @params = request.Parameters.Where(p => p.Type == ParameterType.GetOrPost)
                .Select(p => p.Name.UrlEncode() + "=" + p.Value.ToString().UrlEncode());

            var hmacSig = GenerateSignature(string.Join("&", @params.ToArray()), this.apiSecret);

            request.AddHeader("x-api-key", this.apiKey)
                   .AddHeader("x-api-sign", hmacSig);
        }
Esempio n. 29
0
		public void Authenticate(IRestClient client, IRestRequest request) {
			// NetworkCredentials always makes two trips, even if with PreAuthenticate,
			// it is also unsafe for many partial trust scenarios
			// request.Credentials = Credentials;
			// thanks TweetSharp!

			// request.Credentials = new NetworkCredential(_username, _password);

			// only add the Authorization parameter if it hasn't been added by a previous Execute
			if (!request.Parameters.Any(p => p.Name.Equals("Authorization", StringComparison.OrdinalIgnoreCase)))
			{
				var token = Convert.ToBase64String(Encoding.UTF8.GetBytes(string.Format("{0}:{1}", _username, _password)));
				var authHeader = string.Format("Basic {0}", token);
				request.AddParameter("Authorization", authHeader, ParameterType.HttpHeader);
			}
		}
        public void Authenticate(IRestClient client, IRestRequest request)
        {
            request.Credentials = new NetworkCredential(_user, _pass);

            // TODO: Figure out how to remove the if.. currently PUT does not work if the DigestAuthFixer is in place
            if (request.Method == Method.GET)
            {
                var url = client.BuildUri(request).ToString();
                var uri = new Uri(url);

                var digestAuthFixer = new DigestAuthFixer(client.BaseUrl, _user, _pass);
                digestAuthFixer.GrabResponse(uri.PathAndQuery);
                var digestHeader = digestAuthFixer.GetDigestHeader(uri.PathAndQuery);
                request.AddParameter("Authorization", digestHeader, ParameterType.HttpHeader);
            }
        }
Esempio n. 31
0
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     if (request.Method == Method.PUT)
     {
         //Do the parameters as URL segments for PUT
         request.AddParameter("oauth_consumer_key", _consumerKey, ParameterType.UrlSegment);
         request.AddParameter("oauth_nonce", GenerateNonce(), ParameterType.UrlSegment);
         if (!string.IsNullOrEmpty(_token))
         {
             request.AddParameter("oauth_token", _token, ParameterType.UrlSegment);
         }
         request.AddParameter("oauth_timestamp", GenerateTimeStamp(), ParameterType.UrlSegment);
         request.AddParameter("oauth_signature_method", SignatureMethod, ParameterType.UrlSegment);
         request.AddParameter("oauth_version", "1.0", ParameterType.UrlSegment);
         request.Parameters.Sort(new QueryParameterComparer());
         request.AddParameter("oauth_signature", GenerateSignature(request), ParameterType.UrlSegment);
     }
     else
     {
         request.AddParameter("oauth_version", "1.0");
         request.AddParameter("oauth_nonce", GenerateNonce());
         request.AddParameter("oauth_timestamp", GenerateTimeStamp());
         request.AddParameter("oauth_signature_method", SignatureMethod);
         request.AddParameter("oauth_consumer_key", _consumerKey);
         if (!string.IsNullOrEmpty(_token))
         {
             request.AddParameter("oauth_token", _token);
         }
         request.Parameters.Sort(new QueryParameterComparer());
         request.AddParameter("oauth_signature", GenerateSignature(request));
     }
 }
Esempio n. 32
0
 /// <summary>
 /// Modifies the request to ensure that the authentication requirements are met.
 /// </summary>
 /// <param name="client">Client executing this request</param>
 /// <param name="request">Request to authenticate</param>
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     request.AddParameter(_usernameKey, _username);
     request.AddParameter(_passwordKey, _password);
 }
        /// <summary>
        /// Automatically create parameters from object properties
        /// </summary>
        /// <param name="request">The REST request to add this parameter to</param>
        /// <param name="obj">Object to serialize to the request body</param>
        /// <param name="objProperties">The object properties</param>
        /// <param name="filterMode">Include or exclude the properties?</param>
        /// <returns>The request object to allow call chains</returns>
        public static IRestRequest AddObject(this IRestRequest request, object obj, IEnumerable <string> objProperties, PropertyFilterMode filterMode)
        {
            var type = obj.GetType();

            var objectProperties = objProperties == null ? null : new HashSet <string>(objProperties);
            var addedProperties  = new HashSet <string>();

            while (type != typeof(object))
            {
#if NO_TYPEINFO
                var typeInfo = type;
                var props    = typeInfo.GetProperties();
#else
                var typeInfo = type.GetTypeInfo();
                var props    = typeInfo.DeclaredProperties;
#endif

                foreach (var prop in props.Where(x => !addedProperties.Contains(x.Name)))
                {
                    bool isAllowed;

                    if (objectProperties == null)
                    {
                        isAllowed = true;
                    }
                    else
                    {
                        if (filterMode == PropertyFilterMode.Include)
                        {
                            isAllowed = objectProperties.Contains(prop.Name);
                        }
                        else
                        {
                            isAllowed = !objectProperties.Contains(prop.Name);
                        }
                    }

                    if (!isAllowed)
                    {
                        continue;
                    }

                    addedProperties.Add(prop.Name);

                    var propType = prop.PropertyType;
                    var val      = prop.GetValue(obj, null);

                    if (val != null)
                    {
                        if (propType.IsArray)
                        {
                            var elementType = propType.GetElementType();
#if NO_TYPEINFO
                            var elementTypeInfo = elementType;
#else
                            var elementTypeInfo = elementType.GetTypeInfo();
#endif

                            if (((Array)val).Length > 0 &&
                                (elementTypeInfo.IsPrimitive || elementTypeInfo.IsValueType || elementType == typeof(string)))
                            {
                                // convert the array to an array of strings
                                var values = (from object item in (Array)val select item.ToString()).ToArray();
                                val = string.Join(",", values);
                            }
                            else
                            {
                                // try to cast it
                                val = string.Join(",", (string[])val);
                            }
                        }

                        request.AddParameter(prop.Name, val);
                    }
                }

                type = typeInfo.BaseType;
            }

            return(request);
        }
Esempio n. 34
0
 public static IRestRequest AddParameterIfNotNull <T>(this IRestRequest request, string paramName, T?value)
     where T : struct
 {
     return(value == null ? request : request.AddParameter(paramName, value.Value));
 }
 /// <summary>
 /// Add a file parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="bytes">File content</param>
 /// <param name="fileName">File name</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddFile(this IRestRequest request, string name, byte[] bytes, string fileName)
 {
     return(request.AddParameter(FileParameter.Create(name, bytes, fileName)));
 }
 public static IRestRequest AddFile(this IRestRequest request, FileParameter parameter)
 {
     return(request.AddParameter(parameter));
 }
Esempio n. 37
0
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
            http.Encoding = this.Encoding;
            http.AlwaysMultipartFormData = request.AlwaysMultipartFormData;
#if !PocketPC
            http.UseDefaultCredentials = request.UseDefaultCredentials;
#endif
            http.ResponseWriter = request.ResponseWriter;
#if !PocketPC
            http.CookieContainer = CookieContainer;
#endif
            // move RestClient.DefaultParameters into Request.Parameters
            foreach (var p in DefaultParameters)
            {
                if (request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type))
                {
                    continue;
                }

                request.AddParameter(p);
            }

            // Add Accept header based on registered deserializers if none has been set by the caller.
#if PocketPC
            if (request.Parameters.All(p2 => p2.Name.ToLower() != "accept"))
#else
            if (request.Parameters.All(p2 => p2.Name.ToLowerInvariant() != "accept"))
#endif
            {
                var accepts = string.Join(", ", AcceptTypes.ToArray());
                request.AddParameter("Accept", accepts, ParameterType.HttpHeader);
            }

            http.Url             = BuildUri(request);
            http.PreAuthenticate = this.PreAuthenticate;

            var userAgent = UserAgent ?? http.UserAgent;

            http.UserAgent = userAgent.HasValue() ? userAgent : "RestSharp/" + version;

            var timeout = request.Timeout > 0 ? request.Timeout : Timeout;

            if (timeout > 0)
            {
                http.Timeout = timeout;
            }

            var readWriteTimeout = request.ReadWriteTimeout > 0 ? request.ReadWriteTimeout : ReadWriteTimeout;

            if (readWriteTimeout > 0)
            {
                http.ReadWriteTimeout = readWriteTimeout;
            }

#if !SILVERLIGHT
            http.FollowRedirects = FollowRedirects;
#endif

#if FRAMEWORK
            if (ClientCertificates != null)
            {
                http.ClientCertificates = this.ClientCertificates;
            }

            http.MaxRedirects = MaxRedirects;
#endif

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            var headers = from p in request.Parameters
                          where p.Type == ParameterType.HttpHeader
                          select new HttpHeader
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var header in headers)
            {
                http.Headers.Add(header);
            }

            var cookies = from p in request.Parameters
                          where p.Type == ParameterType.Cookie
                          select new HttpCookie
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            var @params = from p in request.Parameters
                          where p.Type == ParameterType.GetOrPost &&
                          p.Value != null
                          select new HttpParameter
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (var file in request.Files)
            {
                http.Files.Add(new HttpFile
                {
                    Name          = file.Name,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength
                });
            }

            var body = (from p in request.Parameters
                        where p.Type == ParameterType.RequestBody
                        select p).FirstOrDefault();

            // Only add the body if there aren't any files to make it a multipart form request
            // If there are files, then add the body to the HTTP Parameters
            if (body != null)
            {
                http.RequestContentType = body.Name;

                if (!http.Files.Any())
                {
                    object val = body.Value;

                    if (val is byte[])
                    {
                        http.RequestBodyBytes = (byte[])val;
                    }
                    else
                    {
                        http.RequestBody = Convert.ToString(body.Value);
                    }
                }
                else
                {
                    http.Parameters.Add(new HttpParameter
                    {
                        Name  = body.Name,
                        Value = Convert.ToString(body.Value)
                    });
                }
            }
#if FRAMEWORK
            this.ConfigureProxy(http);
#endif
        }
Esempio n. 38
0
        public override void AddFilter(IRestRequest request)
        {
            base.AddFilter(request);

            if (this.MinimumId != null)
            {
                request.AddParameter("min_id", this.MinimumId, ParameterType.GetOrPost);
            }
            if (this.MaximumId != null)
            {
                request.AddParameter("max_id", this.MaximumId, ParameterType.GetOrPost);
            }
            if (this.FirstName != null)
            {
                request.AddParameter("first_name", this.FirstName, ParameterType.GetOrPost);
            }
            if (this.LastName != null)
            {
                request.AddParameter("last_name", this.LastName, ParameterType.GetOrPost);
            }
            if (this.Company != null)
            {
                request.AddParameter("company", this.Company, ParameterType.GetOrPost);
            }
            if (this.Email != null)
            {
                request.AddParameter("email", this.Email, ParameterType.GetOrPost);
            }
            if (this.Phone != null)
            {
                request.AddParameter("phone", this.Phone, ParameterType.GetOrPost);
            }
            if (this.StoreCredit != null)
            {
                request.AddParameter("store_credit", this.StoreCredit, ParameterType.GetOrPost);
            }
            if (this.CustomerGroupId != null)
            {
                request.AddParameter("customer_group_id", this.CustomerGroupId, ParameterType.GetOrPost);
            }
            if (this.MinDateCreated != null)
            {
                request.AddParameter("min_date_created", String.Format(RFC2822_DATE_FORMAT, this.MinDateCreated), ParameterType.GetOrPost);
            }
            if (this.MaxDateCreated != null)
            {
                request.AddParameter("max_date_created", String.Format(RFC2822_DATE_FORMAT, this.MaxDateCreated), ParameterType.GetOrPost);
            }
        }
Esempio n. 39
0
 // web client adds this random value to each and every request
 private IRestRequest AddRandom(IRestRequest request)
 {
     return(request.AddParameter(RandomParam, _random.Value.NextDouble(), ParameterType.QueryString));
 }
Esempio n. 40
0
 private IRestRequest AddLocation(IRestRequest request, string location)
 {
     return(request.AddParameter(LocationParam, location, ParameterType.QueryString));
 }
Esempio n. 41
0
 /// <summary>
 /// 调用所有OpenAPI时,除了各接口私有的参数外,所有OpenAPI都需要传入基于OAuth2.0协议的通用参数
 /// 将这些通用参数加入RestRequest
 /// </summary>
 /// <param name="client"></param>
 /// <param name="request"></param>
 public override void Authenticate(IRestClient client, IRestRequest request)
 {
     request.AddParameter("access_token", AccessToken, ParameterType.GetOrPost);
     request.AddParameter("openid", openId, ParameterType.GetOrPost);
     request.AddParameter("oauth_consumer_key", consumerKey, ParameterType.GetOrPost);
 }
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
            http.Encoding = this.Encoding;
            http.AlwaysMultipartFormData = request.AlwaysMultipartFormData;
            http.UseDefaultCredentials   = request.UseDefaultCredentials;
            http.ResponseWriter          = request.ResponseWriter;
            http.CookieContainer         = this.CookieContainer;

            // move RestClient.DefaultParameters into Request.Parameters
            foreach (Parameter p in this.DefaultParameters)
            {
                if (request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type))
                {
                    continue;
                }

                request.AddParameter(p);
            }

            // Add Accept header based on registered deserializers if none has been set by the caller.
            if (request.Parameters.All(p2 => p2.Name.ToLowerInvariant() != "accept"))
            {
                string accepts = string.Join(", ", this.AcceptTypes.ToArray());

                request.AddParameter("Accept", accepts, ParameterType.HttpHeader);
            }

            http.Url             = this.BuildUri(request);
            http.PreAuthenticate = this.PreAuthenticate;

            string userAgent = this.UserAgent ?? http.UserAgent;

            http.UserAgent = userAgent.HasValue()
                ? userAgent
                : "RestSharp/" + version;

            int timeout = request.Timeout > 0
                ? request.Timeout
                : this.Timeout;

            if (timeout > 0)
            {
                http.Timeout = timeout;
            }

            int readWriteTimeout = request.ReadWriteTimeout > 0
                ? request.ReadWriteTimeout
                : this.ReadWriteTimeout;

            if (readWriteTimeout > 0)
            {
                http.ReadWriteTimeout = readWriteTimeout;
            }

#if !SILVERLIGHT
            http.FollowRedirects = this.FollowRedirects;
#endif

#if UNITY_5_0_OR_NEWER || UNITY_2017_1_OR_NEWER
            if (this.ClientCertificates != null)
            {
                http.ClientCertificates = this.ClientCertificates;
            }

            http.MaxRedirects = this.MaxRedirects;
            http.CachePolicy  = this.CachePolicy;
#endif

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            IEnumerable <HttpHeader> headers = from p in request.Parameters
                                               where p.Type == ParameterType.HttpHeader
                                               select new HttpHeader
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpHeader header in headers)
            {
                http.Headers.Add(header);
            }

            IEnumerable <HttpCookie> cookies = from p in request.Parameters
                                               where p.Type == ParameterType.Cookie
                                               select new HttpCookie
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpCookie cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            IEnumerable <HttpParameter> @params = from p in request.Parameters
                                                  where p.Type == ParameterType.GetOrPost && p.Value != null
                                                  select new HttpParameter
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (HttpParameter parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (FileParameter file in request.Files)
            {
                http.Files.Add(new HttpFile
                {
                    Name          = file.Name,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength
                });
            }

            Parameter body = request.Parameters.FirstOrDefault(p => p.Type == ParameterType.RequestBody);

            // Only add the body if there aren't any files to make it a multipart form request
            // If there are files, then add the body to the HTTP Parameters
            if (body != null)
            {
                http.RequestContentType = body.Name;

                if (!http.Files.Any())
                {
                    object val = body.Value;

                    if (val is byte[])
                    {
                        http.RequestBodyBytes = (byte[])val;
                    }
                    else
                    {
                        http.RequestBody = Convert.ToString(body.Value);
                    }
                }
                else
                {
                    http.Parameters.Add(new HttpParameter
                    {
                        Name        = body.Name,
                        Value       = Convert.ToString(body.Value),
                        ContentType = body.ContentType
                    });
                }
            }
#if UNITY_5_0_OR_NEWER || UNITY_2017_1_OR_NEWER
            this.ConfigureProxy(http);
#endif
        }
Esempio n. 43
0
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     request.AddParameter("Authorization", _authHeader, ParameterType.HttpHeader);
 }
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
            http.CookieContainer = CookieContainer;

            http.ResponseWriter = request.ResponseWriter;

            // move RestClient.DefaultParameters into Request.Parameters
            foreach (var p in DefaultParameters)
            {
                if (request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type))
                {
                    continue;
                }

                request.AddParameter(p);
            }

            // Add Accept header based on registered deserializers if none has been set by the caller.
            if (!request.Parameters.Any(p2 => p2.Name.ToLowerInvariant() == "accept"))
            {
                var accepts = string.Join(", ", AcceptTypes.ToArray());
                request.AddParameter("Accept", accepts, ParameterType.HttpHeader);
            }

            http.Url = BuildUri(request);

            var userAgent = UserAgent ?? http.UserAgent;

            http.UserAgent = userAgent.HasValue() ? userAgent : "RestSharp " + version.ToString();

            var timeout = request.Timeout > 0 ? request.Timeout : Timeout;

            if (timeout > 0)
            {
                http.Timeout = timeout;
            }

#if !SILVERLIGHT
            http.FollowRedirects = FollowRedirects;
#endif
#if FRAMEWORK
            if (ClientCertificates != null)
            {
                http.ClientCertificates = ClientCertificates;
            }

            http.MaxRedirects = MaxRedirects;
#endif

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            var headers = from p in request.Parameters
                          where p.Type == ParameterType.HttpHeader
                          select new HttpHeader
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var header in headers)
            {
                http.Headers.Add(header);
            }

            var cookies = from p in request.Parameters
                          where p.Type == ParameterType.Cookie
                          select new HttpCookie
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            var @params = from p in request.Parameters
                          where p.Type == ParameterType.GetOrPost &&
                          p.Value != null
                          select new HttpParameter
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (var file in request.Files)
            {
                http.Files.Add(new HttpFile {
                    Name = file.Name, ContentType = file.ContentType, Writer = file.Writer, FileName = file.FileName, ContentLength = file.ContentLength
                });
            }

            var body = (from p in request.Parameters
                        where p.Type == ParameterType.RequestBody
                        select p).FirstOrDefault();

            if (body != null)
            {
                object val = body.Value;
                if (val is byte[])
                {
                    http.RequestBodyBytes = (byte[])val;
                }
                else
                {
                    http.RequestBody = body.Value.ToString();
                }
                http.RequestContentType = body.Name;
            }
#if FRAMEWORK
            ConfigureProxy(http);
#endif
        }
Esempio n. 45
0
 public override void Authenticate(IRestClient client, IRestRequest request)
 {
     request.AddParameter("oauth_token", AccessToken, ParameterType.GetOrPost);
 }
Esempio n. 46
0
 /// <summary> Adds the provided private token to the request as a header. </summary>
 /// <param name="client"> The <see cref="IRestClient" />. </param>
 /// <param name="request"> The <see cref="IRestRequest" /> to add the header to. </param>
 public void Authenticate(IRestClient client, IRestRequest request)
 {
     request.AddParameter("PRIVATE-TOKEN", PrivateToken, ParameterType.HttpHeader);
 }
 /// <summary>
 /// Add a file parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="input">File content</param>
 /// <param name="fileName">File name</param>
 /// <param name="contentType">Content type for the parameter (only applicable to a Body parameter)</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddFile(this IRestRequest request, string name, Stream input, string fileName, string contentType)
 {
     return(request.AddParameter(FileParameter.Create(name, input, fileName, contentType)));
 }
 /// <summary>
 /// Add a parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="value">Value of the parameter</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddParameter(this IRestRequest request, string name, object value)
 {
     return(request.AddParameter(new Parameter {
         Name = name, Value = value, Type = ParameterType.GetOrPost
     }));
 }
 /// <summary>
 /// Add a parameter to a REST request
 /// </summary>
 /// <param name="request">The REST request to add this parameter to</param>
 /// <param name="name">Name of the parameter</param>
 /// <param name="value">Value of the parameter</param>
 /// <param name="type">Type of the parameter</param>
 /// <param name="contentType">Content type for the parameter (only applicable to a Body parameter)</param>
 /// <returns>The REST request to allow call chains</returns>
 public static IRestRequest AddParameter(this IRestRequest request, string name, object value, ParameterType type, string contentType)
 {
     return(request.AddParameter(new Parameter {
         Name = name, Value = value, Type = type, ContentType = contentType
     }));
 }
Esempio n. 50
0
        private void ConfigureHttp(IRestRequest request, IHttp http)
        {
#if !WindowsCE
            http.CookieContainer = CookieContainer;
#endif

            // move RestClient.DefaultParameters into Request.Parameters
            foreach (var p in DefaultParameters)
            {
                if (request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type))
                {
                    continue;
                }

                request.AddParameter(p);
            }

            http.Url = BuildUri(request);

            var userAgent = UserAgent ?? http.UserAgent;
            http.UserAgent = userAgent.HasValue() ? userAgent : "RestSharp " + version.ToString();

            var timeout = request.Timeout > 0 ? request.Timeout : Timeout;
            if (timeout > 0)
            {
                http.Timeout = timeout;
            }

#if !SILVERLIGHT
            http.FollowRedirects = FollowRedirects;
#endif
#if FRAMEWORK
            if (ClientCertificates != null)
            {
                http.ClientCertificates = ClientCertificates;
            }

            http.MaxRedirects = MaxRedirects;
#endif

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            var headers = from p in request.Parameters
                          where p.Type == ParameterType.HttpHeader
                          select new HttpHeader
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var header in headers)
            {
                http.Headers.Add(header);
            }

            var cookies = from p in request.Parameters
                          where p.Type == ParameterType.Cookie
                          select new HttpCookie
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            var @params = from p in request.Parameters
                          where p.Type == ParameterType.GetOrPost &&
                          p.Value != null
                          select new HttpParameter
            {
                Name  = p.Name,
                Value = p.Value.ToString()
            };

            foreach (var parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (var file in request.Files)
            {
                http.Files.Add(new HttpFile {
                    Name = file.Name, ContentType = file.ContentType, Writer = file.Writer, FileName = file.FileName, ContentLength = file.ContentLength
                });
            }

            var body = (from p in request.Parameters
                        where p.Type == ParameterType.RequestBody
                        select p).FirstOrDefault();

            if (body != null)
            {
                http.RequestBody        = body.Value.ToString();
                http.RequestContentType = body.Name;
            }
        }
Esempio n. 51
0
 public HttpRequestWrapper AddParameter(string name, object value)
 {
     _request.AddParameter(name, value);
     return(this);
 }
Esempio n. 52
0
        private IRestRequest ApplySecret(IRestRequest request, Uri url)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var urlStr = url.ToString();

            if (_authV2 && urlStr.ContainsIgnoreCase("/v2/"))
            {
                var apiKey    = "BITSTAMP " + _key.UnSecure();
                var version   = "v2";
                var nonce     = Guid.NewGuid().ToString();
                var timeStamp = ((long)TimeHelper.UnixNowMls).To <string>();

                var payload = request
                              .Parameters
                              .Where(p => p.Type == ParameterType.GetOrPost && p.Value != null)
                              .OrderBy(p => p.Name)
                              .Select(p => $"{p.Name}={p.Value}")
                              .Join("&");

                var str = apiKey +
                          request.Method +
                          url.Host +
                          url.PathAndQuery.Remove(url.Query, true) +
                          url.Query +
                          "application/json" +
                          nonce +
                          timeStamp +
                          version +
                          payload;

                var signature = _hasher
                                .ComputeHash(str.UTF8())
                                .Digest()
                                .ToUpperInvariant();

                request
                .AddHeader("X-Auth", apiKey)
                .AddHeader("X-Auth-Signature", signature)
                .AddHeader("X-Auth-Nonce", nonce)
                .AddHeader("X-Auth-Timestamp", timeStamp)
                .AddHeader("X-Auth-Version", version);
            }
            else
            {
                var nonce = _nonceGen.GetNextId();

                var signature = _hasher
                                .ComputeHash((nonce + _clientId + _key.UnSecure()).UTF8())
                                .Digest()
                                .ToUpperInvariant();

                request
                .AddParameter("key", _key.UnSecure())
                .AddParameter("nonce", nonce)
                .AddParameter("signature", signature);
            }

            return(request);
        }
Esempio n. 53
0
        private void AddOAuthData(IRestClient client, IRestRequest request, OAuthWorkflow workflow)
        {
            var url = client.BuildUri(request).ToString();
            var queryStringStart = url.IndexOf('?');

            if (queryStringStart != -1)
            {
                url = url.Substring(0, queryStringStart);
            }

            OAuthWebQueryInfo oauth;

#if PocketPC
            var method = request.Method.ToString().ToUpper();
#else
            var method = request.Method.ToString().ToUpperInvariant();
#endif

            var parameters = new WebParameterCollection();

            // include all GET and POST parameters before generating the signature
            // according to the RFC 5849 - The OAuth 1.0 Protocol
            // http://tools.ietf.org/html/rfc5849#section-3.4.1
            // if this change causes trouble we need to introduce a flag indicating the specific OAuth implementation level,
            // or implement a seperate class for each OAuth version
            if (!request.AlwaysMultipartFormData && !request.Files.Any())
            {
                foreach (var p in client.DefaultParameters.Where(p => p.Type == ParameterType.GetOrPost || p.Type == ParameterType.QueryString))
                {
                    parameters.Add(new WebPair(p.Name, p.Value.ToString()));
                }

                foreach (var p in request.Parameters.Where(p => p.Type == ParameterType.GetOrPost || p.Type == ParameterType.QueryString))
                {
                    parameters.Add(new WebPair(p.Name, p.Value.ToString()));
                }
            }
            else
            {
                // if we are sending a multipart request, only the "oauth_" parameters should be included in the signature
                foreach (var p in client.DefaultParameters.Where(
                             p => (p.Type == ParameterType.GetOrPost || p.Type == ParameterType.QueryString) && p.Name.StartsWith("oauth_")))
                {
                    parameters.Add(new WebPair(p.Name, p.Value.ToString()));
                }

                foreach (var p in request.Parameters.Where(
                             p => (p.Type == ParameterType.GetOrPost || p.Type == ParameterType.QueryString) && p.Name.StartsWith("oauth_")))
                {
                    parameters.Add(new WebPair(p.Name, p.Value.ToString()));
                }
            }

            switch (Type)
            {
            case OAuthType.RequestToken:
                workflow.RequestTokenUrl = url;
                oauth = workflow.BuildRequestTokenInfo(method, parameters);
                break;

            case OAuthType.AccessToken:
                workflow.AccessTokenUrl = url;
                oauth = workflow.BuildAccessTokenInfo(method, parameters);
                break;

            case OAuthType.ClientAuthentication:
                workflow.AccessTokenUrl = url;
                oauth = workflow.BuildClientAuthAccessTokenInfo(method, parameters);
                break;

            case OAuthType.ProtectedResource:
                oauth = workflow.BuildProtectedResourceInfo(method, parameters, url);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            switch (ParameterHandling)
            {
            case OAuthParameterHandling.HttpAuthorizationHeader:
                parameters.Add("oauth_signature", oauth.Signature);
                request.AddHeader("Authorization", GetAuthorizationHeader(parameters));
                break;

            case OAuthParameterHandling.UrlOrPostParameters:
                parameters.Add("oauth_signature", oauth.Signature);

                foreach (var parameter in parameters.Where(parameter =>
                                                           !parameter.Name.IsNullOrBlank() &&
                                                           (parameter.Name.StartsWith("oauth_") || parameter.Name.StartsWith("x_auth_"))))
                {
                    request.AddParameter(parameter.Name, HttpUtility.UrlDecode(parameter.Value));
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 54
0
        internal IHttp ConfigureHttp(IRestRequest request)
        {
            var http = Http.Create();

            http.Encoding = Encoding;
            http.AlwaysMultipartFormData = request.AlwaysMultipartFormData;
            http.UseDefaultCredentials   = request.UseDefaultCredentials;
            http.ResponseWriter          = request.ResponseWriter;
            http.AdvancedResponseWriter  = request.AdvancedResponseWriter;
            http.CookieContainer         = CookieContainer;
            http.AutomaticDecompression  = AutomaticDecompression;
            http.WebRequestConfigurator  = WebRequestConfigurator;

            // move RestClient.DefaultParameters into Request.Parameters
            foreach (var p in DefaultParameters)
            {
                var parameterExists = request.Parameters.Any(p2 => p2.Name == p.Name && p2.Type == p.Type);

                if (AllowMultipleDefaultParametersWithSameName)
                {
                    var isMultiParameter = MultiParameterTypes.Any(pt => pt == p.Type);
                    parameterExists = !isMultiParameter && parameterExists;
                }

                if (parameterExists)
                {
                    continue;
                }

                request.AddParameter(p);
            }

            // Add Accept header based on registered deserializers if none has been set by the caller.
            if (request.Parameters.All(p2 => p2.Name.ToLowerInvariant() != "accept"))
            {
                var accepts = string.Join(", ", AcceptTypes.ToArray());

                request.AddParameter("Accept", accepts, ParameterType.HttpHeader);
            }

            http.Url             = BuildUri(request);
            http.Host            = BaseHost;
            http.PreAuthenticate = PreAuthenticate;
            http.UnsafeAuthenticatedConnectionSharing = UnsafeAuthenticatedConnectionSharing;

            var userAgent = UserAgent ?? http.UserAgent;

            http.UserAgent = userAgent.HasValue()
                ? userAgent
                : "RestSharp/" + version;

            var timeout = request.Timeout != 0
                ? request.Timeout
                : Timeout;

            if (timeout != 0)
            {
                http.Timeout = timeout;
            }

            var readWriteTimeout = request.ReadWriteTimeout != 0
                ? request.ReadWriteTimeout
                : ReadWriteTimeout;

            if (readWriteTimeout != 0)
            {
                http.ReadWriteTimeout = readWriteTimeout;
            }

            http.FollowRedirects = FollowRedirects;

            if (ClientCertificates != null)
            {
                http.ClientCertificates = ClientCertificates;
            }

            http.MaxRedirects = MaxRedirects;
            http.CachePolicy  = CachePolicy;
            http.Pipelined    = Pipelined;

            if (request.Credentials != null)
            {
                http.Credentials = request.Credentials;
            }

            if (!string.IsNullOrEmpty(ConnectionGroupName))
            {
                http.ConnectionGroupName = ConnectionGroupName;
            }

            var headers = from p in request.Parameters
                          where p.Type == ParameterType.HttpHeader
                          select new HttpHeader
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var header in headers)
            {
                http.Headers.Add(header);
            }

            var cookies = from p in request.Parameters
                          where p.Type == ParameterType.Cookie
                          select new HttpCookie
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var cookie in cookies)
            {
                http.Cookies.Add(cookie);
            }

            var @params = from p in request.Parameters
                          where p.Type == ParameterType.GetOrPost && p.Value != null
                          select new HttpParameter
            {
                Name  = p.Name,
                Value = Convert.ToString(p.Value)
            };

            foreach (var parameter in @params)
            {
                http.Parameters.Add(parameter);
            }

            foreach (var file in request.Files)
            {
                http.Files.Add(new HttpFile
                {
                    Name          = file.Name,
                    ContentType   = file.ContentType,
                    Writer        = file.Writer,
                    FileName      = file.FileName,
                    ContentLength = file.ContentLength
                });
            }

            var body = request.Parameters.FirstOrDefault(p => p.Type == ParameterType.RequestBody);

            // Only add the body if there aren't any files to make it a multipart form request
            // If there are files or AlwaysMultipartFormData = true, then add the body to the HTTP Parameters
            if (body != null)
            {
                http.RequestContentType = body.Name;

                if (!http.AlwaysMultipartFormData && !http.Files.Any())
                {
                    var val = body.Value;

                    if (val is byte[] bytes)
                    {
                        http.RequestBodyBytes = bytes;
                    }
                    else
                    {
                        http.RequestBody = Convert.ToString(body.Value);
                    }
                }
                else
                {
                    http.Parameters.Add(new HttpParameter
                    {
                        Name        = body.Name,
                        Value       = Convert.ToString(body.Value),
                        ContentType = body.ContentType
                    });
                }
            }

            http.AllowedDecompressionMethods = request.AllowedDecompressionMethods;
            http.Proxy = Proxy ?? (WebRequest.DefaultWebProxy ?? HttpWebRequest.GetSystemWebProxy());
            http.RemoteCertificateValidationCallback = RemoteCertificateValidationCallback;

            return(http);
        }
Esempio n. 55
0
        private void AddOAuthData(IRestClient client, IRestRequest request, OAuthWorkflow workflow)
        {
            var url = client.BuildUri(request).ToString();

            OAuthWebQueryInfo oauth;
            var method = request.Method.ToString().ToUpperInvariant();

            var parameters = new WebParameterCollection();

            // for non-GET style requests make sure params are part of oauth signature
            if (request.Method != Method.GET && request.Method != Method.DELETE)
            {
                foreach (var p in request.Parameters.Where(p => p.Type == ParameterType.GetOrPost))
                {
                    parameters.Add(new WebPair(p.Name, p.Value.ToString()));
                }
            }

            switch (Type)
            {
            case OAuthType.RequestToken:
                workflow.RequestTokenUrl = url;
                oauth = workflow.BuildRequestTokenInfo(method, parameters);
                break;

            case OAuthType.AccessToken:
                workflow.AccessTokenUrl = url;
                oauth = workflow.BuildAccessTokenInfo(method, parameters);
                break;

            case OAuthType.ClientAuthentication:
                workflow.AccessTokenUrl = url;
                oauth = workflow.BuildClientAuthAccessTokenInfo(method, parameters);
                break;

            case OAuthType.ProtectedResource:
                oauth = workflow.BuildProtectedResourceInfo(method, parameters, url);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            switch (ParameterHandling)
            {
            case OAuthParameterHandling.HttpAuthorizationHeader:
                parameters.Add("oauth_signature", oauth.Signature);
                request.AddHeader("Authorization", GetAuthorizationHeader(parameters));
                break;

            case OAuthParameterHandling.UrlOrPostParameters:
                parameters.Add("oauth_signature", HttpUtility.UrlDecode(oauth.Signature));
                foreach (var parameter in parameters)
                {
                    request.AddParameter(parameter.Name, parameter.Value);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Esempio n. 56
0
 public static void PostTweet(string message)
 {
     Request = new RestRequest("/update.json", Method.POST);
     Request.AddParameter("status", message, ParameterType.GetOrPost);
     GetResponse();
 }
Esempio n. 57
0
        /// <summary>
        /// 添加Ucloud对象.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <param name="obj">The object.</param>
        /// <param name="includedProperties">The included properties.</param>
        /// <returns>IRestRequest对象</returns>
        public static IRestRequest AddUObject(this IRestRequest request, object obj, params string[] includedProperties)
        {
            // automatically create parameters from object props
            var type  = obj.GetType();
            var props = type.GetProperties();

            foreach (var prop in props)
            {
                bool isAllowed = includedProperties.Length == 0 ||
                                 (includedProperties.Length > 0 && includedProperties.Contains(prop.Name));

                if (!isAllowed)
                {
                    continue;
                }

                var propType = prop.PropertyType;
                var val      = prop.GetValue(obj, null);

                if (val == null)
                {
                    continue;
                }

                if (propType.IsArray)
                {
                    var elementType = propType.GetElementType();

                    if (((Array)val).Length > 0 &&
                        elementType != null &&
                        (elementType.IsPrimitive || elementType.IsValueType || elementType == typeof(string)))
                    {
                        // convert the array to an array of strings
                        var values = (from object item in ((Array)val)
                                      select item.ToString())
                                     .ToArray <string>();

                        val = string.Join(",", values);
                    }
                    else
                    {
                        // try to cast it
                        val = string.Join(",", (string[])val);
                    }
                }

                if (propType.IsNlist())
                {
                    if (((NList)val).Count > 0)
                    {
                        // convert the array to an array of strings
                        var values = (from object item in ((NList)val)
                                      select item.ToString())
                                     .ToList();

                        for (int i = 0; i < values.Count; i++)
                        {
                            request.AddParameter(prop.Name + '.' + i, values[i]);
                        }
                    }
                    continue;
                }

                var propName = prop.Name;

                if (propName.Contains("__"))
                {
                    propName = propName.Replace("__", "-");
                }

                request.AddParameter(propName, val);
            }

            return(request);
        }
Esempio n. 58
0
 /// <summary>
 /// Called just before issuing request to third-party service when everything is ready.
 /// Allows to add extra parameters to request or do any other needed preparations.
 /// </summary>
 protected override void BeforeGetUserInfo(IRestRequest request)
 {
     request.AddParameter("uids", _userId);
     request.AddParameter("fields", "uid,first_name,last_name,photo");
 }
Esempio n. 59
0
 public static void AddQueryString(this IRestRequest request, string name, object value)
 {
     request.AddParameter(name, value.ToString(), ParameterType.GetOrPost);
 }
 /// <summary>
 /// Modifies the request to ensure that the authentication requirements are met.
 /// </summary>
 /// <param name="client">Client executing this request</param>
 /// <param name="request">Request to authenticate</param>
 /// <param name="credentials">The credentials used for the authentication</param>
 /// <returns>The task the authentication is performed on</returns>
 public override async Task PreAuthenticate(IRestClient client, IRestRequest request, ICredentials credentials)
 {
     request.AddParameter("oauth_token", await Client.GetCurrentToken(), ParameterType.GetOrPost);
 }