2013-02-12 1 views
0

Привет, люди, которые не знакомы с C# Я пытаюсь опубликовать некоторые скрытые поля в форме, я пробовал все методы, которые я нашел, но я не могу, отправить параметры к ASPX образуют эти части моего пытались кодированияКак передать/прочитать значения из метода post в C#

using (WebClient client = new WebClient()) 
     { 
      NameValueCollection postData = new NameValueCollection() 
    { 
      { "s_transm", "TEST" }, 
      { "c_referencia", "TEST" } 
    }; 

      var result =client.UploadValues(Parameters,"POST",postData); 
     } 
     return true; 

Еще один прогиб HTTPWebRequest

public bool Pay(string Parameters) 
    { 
     HttpWebRequest httpWReq = 
      (HttpWebRequest)WebRequest.Create(Parameters); 
     var encoding = new ASCIIEncoding(); 
      string postData = string.Format("s_transm=TEST"); 
      byte[] data = encoding.GetBytes(postData); 
      httpWReq.Method = "POST"; 
      httpWReq.ContentType = "application/x-www-form-urlencoded"; 
      httpWReq.ContentLength = data.Length; 
      using (Stream newStream = httpWReq.GetRequestStream()) 
      { 
      newStream.Write(data,0,data.Length); 
       } 
     var r =httpWReq.GetResponse(); 
     return true; 
    } 

и только один, который работает делает это с клиентом клик почты на форме напрямую, но я хочу этого избежать

<input id="Submit1" type="submit" value="submit" /> 

это то, что я пытался читать

protected void Page_Load(object sender, EventArgs e) 
    { 
     string s1=Request.QueryString["s_transm"]; 
     string s4 = Request["s_transm"]; 
     string s2 = Request.Form["s_transm"]; 
     string Result = new StreamReader(Request.InputStream).ReadToEnd(); 
    } 
+1

я тестировал оба ваших образцов кода против http://posttestserver.com/post. php, и они оба работают нормально. '' Параметры'' должны быть вашим URI. Вы уверены, что указываете свой «отправляющий» код на URL-адрес, который вы контролируете в своем «получающем» коде? – Nathan

+0

Да, я тоже отладил его и проследил его – user1742179

+0

Тогда есть что-то еще, что вы нам не показываете. Я попробовал как отправить образцы с образцом получения, так и все работает так, как ожидалось: s1 == null; s4 == "ТЕСТ"; s2 == "ТЕСТ"; Результат == «s_transm = TEST» или «s_transm = TEST & c_referencia = TEST» в зависимости от образца отправки. – Nathan

ответ

0
void PostMe2(Object sender, EventArgs e) 
{ 
    RemotePost myremotepost = new RemotePost(); 
    myremotepost.Url = "http://www.jigar.net/demo/HttpRequestDemoServer.aspx"; 
    myremotepost.Add("field1", "Huckleberry"); 
    myremotepost.Add("field2", "Finn"); 
    myremotepost.Post(); 
} 

public class RemotePost 
{ 
    private System.Collections.Specialized.NameValueCollection Inputs = new System.Collections.Specialized.NameValueCollection(); 
    public string Url = ""; 
    public string Method = "post"; 
    public string FormName = "form1"; 

    public void Add(string name, string value) 
    { 
     Inputs.Add(name, value); 
    } 

    public void Post() 
    { 
     System.Web.HttpContext.Current.Response.Clear(); 

     System.Web.HttpContext.Current.Response.Write("<html><head>"); 

     System.Web.HttpContext.Current.Response.Write(string.Format("</head><body onload=\"document.{0}.submit()\">", FormName)); 
     System.Web.HttpContext.Current.Response.Write(string.Format("<form name=\"{0}\" method=\"{1}\" action=\"{2}\" >", FormName, Method, Url)); 
     for (int i = 0; i < Inputs.Keys.Count; i++) 
     { 
      System.Web.HttpContext.Current.Response.Write(string.Format("<input name=\"{0}\" type=\"hidden\" value=\"{1}\">", Inputs.Keys[i], Inputs[Inputs.Keys[i]])); 
     } 
     System.Web.HttpContext.Current.Response.Write("</form>"); 
     System.Web.HttpContext.Current.Response.Write("</body></html>"); 

     System.Web.HttpContext.Current.Response.End(); 
    } 
} 
+0

Hai, этот метод отлично работает, чтобы отправлять значения между двумя веб-страницами ..... Бала (инженер-программист в ченнаи) – Bala

Смежные вопросы