Как я могу отправить веб-запрос, используя POST на основе значений имени в C #? - PullRequest
0 голосов
/ 13 ноября 2011

Я читал об использовании веб-запросов и публикации и получаю методы для отправки онлайн-формы, но я очень растерялся. Веб-форма находится на странице, заполненной другими гиперссылками, но просматривая исходный код, она говорит, что method = get в одном месте, а method = post в другом. Метод = get находится в коде рядом с информацией, относящейся к строке поиска, хотя я считаю, что это применимо к этой функции. 2 текстовых поля, которые я хочу заполнить перед отправкой, перечислены как «name = weblink» и «name = imageurl», поэтому многие примеры, которые я видел, используя значения идентификаторов, похоже, не подходят. Кнопка «Сохранить» идентифицируется как

input type="submit" value='Save Changes'

В настоящее время мой код выглядит так:

try
            {
//store our text box information as variables to be uploaded
                string picture = txtbxPicture.Text,
                 weblink = txtbxWeblink.Text,
                 uriString = txtbxWebLink.Text;

                // Create a new WebClient instance.
                WebClient myWebClient = new WebClient();

                // Create a new NameValueCollection instance to hold some custom parameters to be posted to the URL.
                NameValueCollection collection = 
                    new System.Collections.Specialized.NameValueCollection();

                collection.Add("weblink", weblink);
                collection.Add("imageurl", picture);                   

                byte[] result = myWebClient.UploadValues(uriString, collection);

            }
            catch (FormatException ex)
            {
                MessageBox.Show("Error: " + ex.Message);
            }

Если я все правильно понимаю, я использую NameValueCollection для поиска полей по их «имени»? Этот код был скомпилирован с использованием в основном информации MSDN здесь: http://msdn.microsoft.com/en-us/library/9w7b4fz7.aspx

Я видел много других примеров, в которых используется кодировка, и явно указывает, что это метод "POST", но MSDN говорит, что это подразумевается? Я в основном здесь потерян. Может кто-нибудь предложить небольшое руководство, текущие темы просто меня запутывают.

ОБНОВЛЕНИЕ - Таким образом, опознавание поста не является необходимым, но возможно. Как насчет нажатия кнопки «Отправить», это то, что мне нужно кодировать, но это не так? Я не понимаю, что мой код выше должен сделать, чтобы завершить процесс.

1 Ответ

0 голосов
/ 13 ноября 2011

WebClient.UploadValues() будет использовать POST через HTTP по умолчанию, вам не нужно это указывать (хотя вы можете, если нужно, перегружать метод, который позволяет вам).

От MSDN :

Этот метод использует команду STOR для загрузки ресурса FTP. Для ресурса HTTP используется метод POST.

...