protected CultureInfo CultureInfo => CultureInfo.CurrentCulture;//TODO!! protected virtual HttpContent CreateContent(RequestUrlEncodedContent content) { var values = new List <KeyValuePair <string, string> >(); var charSet = content.ContentType.CharSet; foreach (var field in content.Fields) { var fieldContentType = new ContentType(field.MediaType, charSet); var fieldData = RestSerializer.SerializeContent(fieldContentType, field.Content); var fieldValue = Encoding.GetEncoding(charSet).GetString(fieldData); values.Add(new KeyValuePair <string, string>(field.Name, fieldValue)); } var result = new FormUrlEncodedContent(values); return(WithHeaders(WithContentType(result, content.ContentType), content.Headers, CultureInfo)); }
public IRestRequest MapRequest(RequestMetadata metadata, IBindingData bindingSource) { metadata.AssertNotNull(nameof(metadata)); bindingSource.AssertNotNull(nameof(bindingSource)); var bindingContext = new RequestBindingContext(metadata, bindingSource); foreach (var binder in RequestBinders) { binder.Bind(bindingContext); } //TODO validate //bindingContext.Validate(); if (bindingContext.FormFiles.Any()) { throw new NotImplementedException();//TODO ! } var request = new RestRequest() { Method = bindingContext.Metadata.Method, Route = bindingContext.Route, Timeout = bindingContext.Timeout }; //TODO !!! if (bindingContext.FormFields.Any()) { var content = new RequestUrlEncodedContent("utf-8"); //TODO foreach (var field in bindingContext.FormFields) { content.AddField(field); } request.Content = content; } else if (bindingContext.Body != null) { request.Content = bindingContext.Body; } foreach (var header in bindingContext.Headers) { request.AddHeader(header); } foreach (var segment in bindingContext.Path) { request.AddRouteSegment(segment); } foreach (var query in bindingContext.Queries) { request.AddQuery(query); } return(request); }