复制visual basic POST请求

时间:2014-02-21 16:25:24

标签: c# asp.net vb.net httpwebrequest

我已经继承了一些我需要在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();

1 个答案:

答案 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一秒钟。当您点击视频的链接时,它会将您发送到以下网址:

  

http://www.youtube.com/watch?v=5fKM6UyFecE

如果查看其网址末尾,您会看到:

watch?v=5fKM6UyFecE

这告诉我们,您重定向到的实际网页是watch,变量v设置为5fKM6UyFecE。发生的情况是,监视页面采用变量v的值,然后向用户显示该变量的结果。在这种情况下,它是存储在数据库中的视频页面。

因此,要进行外部链接,您可以使用以下内容:

Response.Redirect("http://www.youtube.com/watch?v=5fKM6UyFecE")

希望这一切都有所帮助。