我已经继承了一些我需要在C#asp.net中实现的伪代码(看起来像带有C终止符的VB)
Dim objHttp: Set objHttp = Server.CreateObject("Msxml2.ServerXMLHTTP");
objHttp.open "POST", "http:/somewebsite.php?data=" + Request.QueryString("xyz_custom"), False;
objHttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded";
objHttp.Send Request.Form;
我有点坚持如何正确复制objHttp.Send Request.Form
,因为我通常会发送参数
到目前为止,我有以下代码,这是正确的方法吗?
string qString = Request.QueryString["xyz_custom"];
string url = "http:/somewebsite.php?data=" + qString;
HttpWebRequest objHttp = (HttpWebRequest)WebRequest.Create(url);
objHttp.ContentType = "application/x-www-form-urlencoded";
objHttp.Method = "POST";
objHttp.KeepAlive = false;
objHttp.Credentials = System.Net.CredentialCache.DefaultCredentials;
//Is the following the same as objHttp.Send Request.Form;
byte[] _byteVersion = Encoding.ASCII.GetBytes(Request.Form.ToString());
Stream requestStream = objHttp.GetRequestStream();
requestStream.Write(_byteVersion, 0, _byteVersion.Length);
requestStream.Close();
答案 0 :(得分:1)
要在c#中执行post动作,只需:
<form method="post" runat="server" action="URL to page you want this form submitted to">
//data controls to be posted
<input type="submit" value="Submit" name="buttonSubmit" />
</form>
只要单击该按钮,它就会将表单提交给表单操作。
的更新强> 的
如果没有控件,请使用以下内容:
Response.Redirect("WebForm2.aspx?id=123&data=123");
然后通过以下方式检索变量:
var variable = Request.QueryString["id"];
更新2
当需要传递未知变量时,它是:
var test = "data";
var test2 = "data";
Response.Redirect("WebForm2.aspx?data=" + test + "&data2=" + test2);
以与上述相同的方式检索变量。
如果不需要传递变量,只需使用:
Response.Redirect("WebForm2.aspx");
更新3
更好地理解变量的工作原理:
让我们来看看youtube一秒钟。当您点击视频的链接时,它会将您发送到以下网址:
如果查看其网址末尾,您会看到:
watch?v=5fKM6UyFecE
这告诉我们,您重定向到的实际网页是watch
,变量v
设置为5fKM6UyFecE
。发生的情况是,监视页面采用变量v的值,然后向用户显示该变量的结果。在这种情况下,它是存储在数据库中的视频页面。
因此,要进行外部链接,您可以使用以下内容:
Response.Redirect("http://www.youtube.com/watch?v=5fKM6UyFecE")
希望这一切都有所帮助。