Example #1
0
            public HttpWebRequest Create(string uri)
            {
                FormData formData = new FormData(false,
                                                 "Email", _username,
                                                 "Passwd", _password,
                                                 "service", _service,
                                                 "source", _source);

                if (_captchaToken != null && _captchaValue != null)
                {
                    formData.Add("logintoken", _captchaToken);
                    formData.Add("logincaptcha", _captchaValue);
                }

                HttpWebRequest request = HttpRequestHelper.CreateHttpWebRequest(uri, true);

                request.Method      = "POST";
                request.ContentType = "application/x-www-form-urlencoded";

                using (Stream inStream = formData.ToStream())
                    using (Stream outStream = request.GetRequestStream())
                        StreamHelper.Transfer(inStream, outStream);

                return(request);
            }
Example #2
0
 public override void AddData(FormData data)
 {
     if (Value == null)
         data.Add(Name, string.Empty);
     else
         data.Add(Name, Value);
 }
Example #3
0
        public async Task <FormData> Convert(IFormCollection form)
        {
            var multipartFormData = new FormData();

            foreach (IFormFile file in form.Files)
            {
                var    name      = UnquoteToken(file.Name);
                string fileName  = FixFilename(file.FileName);
                string mediaType = file.ContentType;

                var stream = file.OpenReadStream();
                using (StreamReader fileReader = new StreamReader(stream))
                {
                    //@Todo : In the future make the encoding as a setting
                    //byte[] buffer = Encoding.UTF8.GetBytes(await fileReader.ReadToEndAsync());
                    byte[] buffer = await ReadAllBytes(stream);

                    if (buffer.Length >= 0)
                    {
                        multipartFormData.Add(name, new HttpFile(fileName, mediaType, buffer));
                    }
                }
            }

            foreach (var key in form.Keys)
            {
                var name = UnquoteToken(key);
                var data = form[key];
                multipartFormData.Add(name, data);
            }

            return(multipartFormData);
        }
        public async Task <FormData> Convert(MultipartMemoryStreamProvider multipartProvider)
        {
            var multipartFormData = new FormData();

            foreach (var file in multipartProvider.Contents.Where(x => IsFile(x.Headers.ContentDisposition)))
            {
                var    name      = UnquoteToken(file.Headers.ContentDisposition.Name);
                string fileName  = FixFilename(file.Headers.ContentDisposition.FileName);
                string mediaType = file.Headers.ContentType.MediaType;

                using (var stream = await file.ReadAsStreamAsync())
                {
                    byte[] buffer = ReadAllBytes(stream);
                    if (buffer.Length > 0)
                    {
                        multipartFormData.Add(name, new HttpFile(fileName, mediaType, buffer));
                    }
                }
            }

            foreach (var part in multipartProvider.Contents.Where(x => x.Headers.ContentDisposition.DispositionType == "form-data" &&
                                                                  !IsFile(x.Headers.ContentDisposition)))
            {
                var name = UnquoteToken(part.Headers.ContentDisposition.Name);
                var data = await part.ReadAsStringAsync();

                multipartFormData.Add(name, data);
            }

            return(multipartFormData);
        }
Example #5
0
        public bool Login(ref Accounts acc, string captcha)
        {
            string get = http.Request("GET", "https://manager.sunfrogshirts.com/Login.cfm");
            Match  m   = Regex.Match(get, "name=\"botchecker\" value=\"(.*?)\"");

            if (!m.Success)
            {
                return(false);
            }
            FormData form = new FormData();

            form.Add(new FormElement("username", acc.EMAIL));
            form.Add(new FormElement("password", acc.PASS));
            form.Add(new FormElement("g-recaptcha-response", captcha));
            form.Add(new FormElement("login", ""));
            form.Add(new FormElement("botchecker", m.Groups[1].Value));
            Console.WriteLine(form.ToPostString());
            string html    = http.Request("POST", "https://manager.sunfrogshirts.com/Login.cfm", null, form.GetData(), false);
            var    headers = http.GetResponseHeaders();

            Console.WriteLine(headers.ToString());
            if (!headers.ToString().Contains("dashboard"))
            {
                return(false);
            }
            return(true);
        }
Example #6
0
 public override void AddData(FormData data)
 {
     if (Value == null)
     {
         data.Add(Name, string.Empty);
     }
     else
     {
         data.Add(Name, Value);
     }
 }
Example #7
0
        private FormData PrepareFormDataModel()
        {
            var model = new FormData();

            model.Add("first", "111");
            model.Add("second", "string");
            model.Add("file1", new HttpFile("photo2.png", "image/png", new byte[] { 4, 3, 24, 23 }));
            model.Add("file2", new HttpFile("photo3.jpg", "image/jpg", new byte[] { 80, 31, 12, 3, 78, 45 }));

            return(model);
        }
 public override void AddData(FormData data)
 {
     if (Name != null)
     {
         data.Add(Name + ".x", "1");
         data.Add(Name + ".y", "1");
     }
     else
     {
         data.Add("x", "1");
         data.Add("y", "1");
     }
     base.AddData(data);
 }
Example #9
0
 public override void AddData(FormData data)
 {
     if (Name != null)
     {
         data.Add(Name + ".x", "1");
         data.Add(Name + ".y", "1");
     }
     else
     {
         data.Add("x", "1");
         data.Add("y", "1");
     }
     base.AddData(data);
 }
        /// <summary>
        /// Read the non-file contents as form data.
        /// </summary>
        /// <returns></returns>
        public override async Task ExecutePostProcessingAsync()
        {
            // Find instances of non-file HttpContents and read them asynchronously
            // to get the string content and then add that as form data
            for (int index = 0; index < Contents.Count; index++)
            {
                if (_isFormData[index])
                {
                    HttpContent formContent = Contents[index];
                    // Extract name from Content-Disposition header. We know from earlier that the header is present.
                    ContentDispositionHeaderValue contentDisposition = formContent.Headers.ContentDisposition;

                    string formFieldName = UnquoteToken(contentDisposition.Name) ?? String.Empty;

                    // Read the contents as string data and add to form data
                    string formFieldValue = await formContent.ReadAsStringAsync();

                    FormData.Add(formFieldName, formFieldValue);
                }
                else
                {
                    _fileContents.Add(Contents[index]);
                }
            }
        }
    public override async Task ExecutePostProcessingAsync()
    {
        for (var index = 0; index < Contents.Count; index++)
        {
            HttpContent formContent = Contents[index];
            if (_isFormData[index])
            {
                // Field
                string formFieldName  = UnquoteToken(formContent.Headers.ContentDisposition.Name) ?? string.Empty;
                string formFieldValue = await formContent.ReadAsStringAsync();

                FormData.Add(formFieldName, formFieldValue);
            }
            else
            {
                // File
                var file = new MultipartFormFile
                {
                    Name      = UnquoteToken(formContent.Headers.ContentDisposition.FileName),
                    Length    = formContent.Headers.ContentLength,
                    MediaType = formContent.Headers.ContentType.MediaType,
                    Stream    = await formContent.ReadAsStreamAsync()
                };
                FileStreams.Add(file);
            }
        }
    }
 public override void AddData(FormData data)
 {
     if (Name != null)
     {
         data.Add(Name, Value);
     }
 }
Example #13
0
        /// <summary>
        /// Read the non-file contents as form data.
        /// </summary>
        /// <returns></returns>
        public override async Task ExecutePostProcessingAsync()
        {
            // Find instances of non-file HttpContents and read them asynchronously
            // to get the string content and then add that as form data
            for (int index = 0; index < Contents.Count; index++)
            {
                //{form-data; name="Image"; filename="aarvi01-gps-vehicle-tracking-system-with-1-year-warranty-500x500.jpg"}
                string formFieldName = string.Empty;

                if (_isFormData[index])
                {
                    HttpContent formContent = Contents[index];
                    // Extract name from Content-Disposition header. We know from earlier that the header is present.
                    ContentDispositionHeaderValue contentDisposition = formContent.Headers.ContentDisposition;
                    formFieldName = UnquoteToken(contentDisposition.Name) ?? String.Empty;

                    // Read the contents as string data and add to form data
                    string formFieldValue = await formContent.ReadAsStringAsync();

                    FormData.Add(formFieldName, formFieldValue);
                }
                else
                {
                    HttpContent formContent = Contents[index];
                    ContentDispositionHeaderValue contentDisposition = formContent.Headers.ContentDisposition;
                    formFieldName = UnquoteToken(contentDisposition.Name) ?? String.Empty;
                    Files.Add(formFieldName, Contents[index]);
                }
            }
        }
        public override async Task ExecutePostProcessingAsync()
        {
            for (int index = 0; index < Contents.Count; ++index)
            {
                HttpContent formContent = Contents[index];
                if (isFormData[index])
                {
                    // Field
                    string formFieldName  = UnquoteToken(formContent.Headers.ContentDisposition.Name) ?? string.Empty;
                    string formFieldValue = await formContent.ReadAsStringAsync();

                    FormData.Add(formFieldName, formFieldValue);
                }
                else
                {
                    // File
                    FileInfo fileInfo = new FileInfo();
                    fileInfo.FileName = UnquoteToken(formContent.Headers.ContentDisposition.FileName);
                    fileInfo.Content  = await formContent.ReadAsByteArrayAsync();

                    fileInfo.FileSize    = (long)formContent.Headers.ContentLength;
                    fileInfo.ContentType = formContent.Headers.ContentType.MediaType;

                    FileData.Add(fileInfo);
                }
            }
        }
        public override async Task ExecutePostProcessingAsync()
        {
            for (var index = 0; index < Contents.Count; index++)
            {
                HttpContent formContent = Contents[index];
                if (_isFormData[index])
                {
                    // Field
                    string formFieldName  = UnquoteToken(formContent.Headers.ContentDisposition.Name) ?? string.Empty;
                    string formFieldValue = await formContent.ReadAsStringAsync();

                    FormData.Add(formFieldName, formFieldValue);
                }
                else
                {
                    // File
                    string fileName = UnquoteToken(formContent.Headers.ContentDisposition.FileName);
                    if (!string.IsNullOrEmpty(fileName))
                    {
                        Stream stream = await formContent.ReadAsStreamAsync();

                        FileStreams.Add(fileName, stream);
                    }
                }
            }
        }
Example #16
0
 public RestRequest AddFormData(string key, byte[] data, string fileName)
 {
     if (!string.IsNullOrEmpty(key) && data != null)
     {
         FormData.Add(new ByteArrayContent(data), key, fileName);
     }
     return(this);
 }
Example #17
0
 public RestRequest AddFormData(byte[] data)
 {
     if (data != null)
     {
         FormData.Add(new ByteArrayContent(data));
     }
     return(this);
 }
Example #18
0
 public RestRequest AddFormData(string key, string value)
 {
     if (!string.IsNullOrWhiteSpace(key) && !string.IsNullOrWhiteSpace(value))
     {
         FormData.Add(new StringContent(value), key);
     }
     return(this);
 }
Example #19
0
 public RestRequest AddFormData(string key, Stream data)
 {
     if (!string.IsNullOrEmpty(key) && data != null)
     {
         FormData.Add(new StreamContent(data), key);
     }
     return(this);
 }
Example #20
0
 public RestRequest AddFormData(Stream data)
 {
     if (data != null)
     {
         FormData.Add(new StreamContent(data));
     }
     return(this);
 }
Example #21
0
 public override void AddData(FormData data)
 {
     foreach (Option opt in options)
     {
         if (opt.Selected)
             data.Add(Name, opt.Value);
     }
 }
        public async Task Resolves_explicit_child_validator_for_collection()
        {
            var formData = new FormData();

            formData.Add("Children[0].Name", null);
            var result = await _client.GetErrors("InjectsExplicitChildValidatorCollection", formData);

            result.IsValidField("Children[0].Name").ShouldBeFalse();
            result.GetError("Children[0].Name").ShouldEqual("NotNullInjected");
        }
        public override async Task ExecutePostProcessingAsync()
        {
            foreach (HttpContent httpContent in Contents.Where((HttpContent content, int index) => _isFormData[index]))
            {
                ContentDispositionHeaderValue contentDisposition = httpContent.Headers.ContentDisposition;
                string name  = contentDisposition.Name.Unquote() ?? string.Empty;
                string value = await httpContent.ReadAsStringAsync();

                FormData.Add(name, value);
            }
            ;
        }
Example #24
0
        private void ParseFormDataParameters(string formData)
        {
            if (!string.IsNullOrEmpty(formData))
            {
                string[] parameters = formData.Split('&').ToArray();

                foreach (string parameter in parameters)
                {
                    FormData.Add(parameter.Split('=')[0], parameter.Split('=')[1]);
                }
            }
        }
 private void ParseFormData(string requestBody)
 {
     if (!string.IsNullOrWhiteSpace(requestBody) && requestBody.Contains('='))
     {
         string[] bodyParameters = requestBody.Split('&');
         foreach (var bodyParameter in bodyParameters)
         {
             string[] bodyParameterArgs = bodyParameter.Split('=');
             string   bodyParameterkey  = bodyParameterArgs[0];
             FormData.Add(bodyParameterkey, bodyParameter);
         }
     }
 }
Example #26
0
        private void ParseFormDataParameters(string formData)
        {
            if (!string.IsNullOrEmpty(formData))
            {
                string[] parameters = formData.Split('&').ToArray();

                foreach (string parameter in parameters)
                {
                    string decoded = WebUtility.UrlDecode(parameter.Split('=')[1]);
                    FormData.Add(parameter.Split('=')[0], decoded);
                }
            }
        }
Example #27
0
        public void AppendForm()
        {
            var form = new FormData();

            form.Add("a", "1");

            Assert.Equal("a=1", form.ToString());

            form.Add("b", "2");

            Assert.Equal("a=1&b=2", form.ToString());


            
        }
Example #28
0
        public virtual HttpRequestBuilder AddFormParameter(string key, object value)
        {
            if (Method != HttpMethod.POST)
            {
                throw new NotSupportedException("HttpRequest Method must be POST to add FormParameter.");
            }

            FormData.Add(new HttpFormData
            {
                Name        = key,
                ContentData = Encoding.UTF8.GetBytes(value.ToString())
            });

            return(this);
        }
Example #29
0
        public virtual HttpRequestBuilder AddFormParameter(string key, object value)
        {
            if (Method != HttpMethod.POST)
            {
                throw new NotSupportedException("HttpRequest Method must be POST to add FormParameter.");
            }

            FormData.Add(new HttpFormData
            {
                Name        = key,
                ContentData = Encoding.UTF8.GetBytes(Convert.ToString(value, System.Globalization.CultureInfo.InvariantCulture))
            });

            return(this);
        }
	private void ParseFormData(string requestBody)
	{
	    if (!string.IsNullOrWhiteSpace(requestBody) && requestBody.Contains('='))
	    {
		var bodyParameters = requestBody.Split('&')
		    .Select(p => WebUtility.UrlDecode(p));
		foreach (var bodyParameter in bodyParameters)
		{
		    string[] bodyParameterArgs = bodyParameter.Split('=', 2);
		    string bodyParameterkey = bodyParameterArgs[0];
		    string bodyParameterValue = bodyParameterArgs[1];
		    FormData.Add(bodyParameterkey, bodyParameterValue);
		}
	    }
	}
        private void ParseFormDataParameters(string formData)
        {
            if (string.IsNullOrEmpty(formData))
            {
                return;
            }

            string[] formDataParams = formData.Split(HttpRequestParameterSeparator);

            foreach (var formDataParameter in formDataParams)
            {
                string[] parameterArguments = formDataParameter
                                              .Split(HttpRequestParameterNameValueSeparator, StringSplitOptions.RemoveEmptyEntries);

                if (this.FormData.ContainsKey(parameterArguments[0]))
                {
                    if (this.FormData[parameterArguments[0]] is string ||
                        !(this.FormData[parameterArguments[0]] is List <string>))
                    {
                        List <string> collection = new List <string> {
                            this.FormData[parameterArguments[0]].ToString()
                        };
                        this.FormData[parameterArguments[0]] = collection;
                    }

                    if (parameterArguments.Length >= 2)
                    {
                        ((List <string>)FormData[parameterArguments[0]])
                        .Add(HttpUtility.UrlDecode(parameterArguments[1]));
                    }
                    else
                    {
                        ((List <string>)FormData[parameterArguments[0]]).Add(null);
                    }
                }
                else
                {
                    if (parameterArguments.Length >= 2)
                    {
                        FormData.Add(parameterArguments[0], HttpUtility.UrlDecode(parameterArguments[1]));
                    }
                    else
                    {
                        FormData.Add(parameterArguments[0], null);
                    }
                }
            }
        }
Example #32
0
        private void ParseFormDataParameters(string formData)
        {
            if (string.IsNullOrEmpty(formData))
            {
                return;
            }

            string[] formDataParams = formData.Split(HttpRequestParameterSeparator);

            foreach (string formDataParameter in formDataParams)
            {
                string[] parameterArguments = formDataParameter.Split(HttpRequestParameterNameValueSeparator, StringSplitOptions.RemoveEmptyEntries);

                FormData.Add(parameterArguments[0], parameterArguments[1]);
            }
        }
Example #33
0
        public virtual HttpRequestBuilder AddFormUpload(string name, string fileName, byte[] data, string contentType = "application/octet-stream")
        {
            if (Method != HttpMethod.POST)
            {
                throw new NotSupportedException("HttpRequest Method must be POST to add FormUpload.");
            }

            FormData.Add(new HttpFormData
            {
                Name        = name,
                FileName    = fileName,
                ContentData = data,
                ContentType = contentType
            });

            return(this);
        }
Example #34
0
        public RestRequest AddFormData(string key, Stream data, string fileName, string contentType = null)
        {
            if (!string.IsNullOrEmpty(key) && data != null)
            {
                var content = new StreamContent(data);
                if (!string.IsNullOrEmpty(contentType))
                {
                    if (System.Net.Http.Headers.MediaTypeHeaderValue.TryParse(contentType, out System.Net.Http.Headers.MediaTypeHeaderValue mediaType))
                    {
                        content.Headers.ContentType = mediaType;
                    }
                }

                FormData.Add(content, key, HttpUtility.UrlEncode(fileName));
            }

            return(this);
        }
 public override void AddData(FormData data)
 {
     if (Name != null)
         data.Add(Name, Value);
 }