2011-01-26 2 views
0

다음 코드를 사용하여 버튼 클릭시 URL에 POST 데이터를 보내고 있습니다. 이 데이터와 함께 양식 이름을 보낼 수 있어야합니다. 어떤 제안?C#을 사용한 HTTP 게시 양식 - 양식의 게시 이름도 같습니다.

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(); 
+0

"양식 이름"은 무엇을 의미합니까? –

+0

+0

BTW 사용자가 양식 데이터를 URL로 인코딩하지 않았으므로 사용자가"& "와 같은 문자를 입력하면 문제가 발생합니다. String.Format()에 전달하는 각 데이터 값의 .EscapeUriString(). – saille

답변

0

동작을 의미하는 경우 URL에 추가하기 만하면됩니다.

0

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

양식 이름을 게시하기위한 키는 무엇입니까? –

+2

브라우저에서 게시하지 않는 특수 키가 없습니다. 귀하의 서버가 기대합니다. – EMP

0

, 당신은 또한 당신이하고있는 활동의 종류와 형태 사이에 숨겨진 변수를 보낼 수 있습니다, 그래서 당신은 숨겨진 숨겨진 가치를 평가하고, 주문에 따라 행동 할 수 그것.

또는 제출 버튼에 값과 이름을 입력하십시오. 그러면 apost 변수로 스크립트에 표시됩니다.