HTTP post форма, использующая c # - также публикует название формы - PullRequest
0 голосов
/ 27 января 2011

Я использую следующий код для отправки данных на URL при нажатии кнопки. Мне нужно иметь возможность отправить имя формы вместе с этими данными. Есть предложения?

string url = "http://www.someurl.com";
    HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
    string proxy = null;

    string data = String.Format("{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}&{10}={11}", 
                    txtName.ClientID, txtName.Text, 
                    txtEmail.ClientID, txtEmail.Text,
                    txtLanguages.ClientID, txtLanguages.Text,
                    txtPhone.ClientID, txtPhone.Text,
                    txtAdditional.ClientID, txtAdditional.Text);
    byte[] buffer = Encoding.UTF8.GetBytes(data);

    req.Method = "POST";
    req.ContentType = "application/x-www-form-urlencoded";
    req.ContentLength = buffer.Length;
    req.Proxy = new WebProxy(proxy, true); // ignore for local addresses 
    req.CookieContainer = new CookieContainer(); // enable cookies 

    Stream reqst = req.GetRequestStream(); // add form data to request stream 
    reqst.Write(buffer, 0, buffer.Length);
    reqst.Flush();
    reqst.Close();

Ответы [ 3 ]

0 голосов
/ 27 января 2011

Вы можете добавить любую пару ключ / значение, которую вы хотите, к данным POST - независимо от того, является ли это именем элемента управления, именем формы, действием формы или вообще нигде на странице.

Кстати, если вы собираетесь создавать POST-данные вручную, вы должны URL-кодировать значения, например.

string data = String.Format("{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}&{10}={11}", 
                txtName.ClientID, HttpUtility.UrlEncode(txtName.Text),
                ...
0 голосов
/ 27 января 2011

Если вы управляете различными действиями с разными формами, вы также можете отправить скрытую переменную между вашей формой и видом деятельности, которую вы делаете, чтобы вы могли оценить скрытое скрытое значение и действовать в соответствии с ним.

Или введите значение и имя для кнопки отправки ... она также появится в вашем сценарии как переменная apost.

0 голосов
/ 27 января 2011

Если вы имеете в виду действие, просто добавьте его к URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...