我对使用httpwebrequest感到有点困惑。我试图查看一些文章,但由于我第一次这样做而无法从中获得更多。以下是我正在尝试的代码,我几乎没有问题,
a)ASPX页面定义的控件很少,在代码隐藏中我创建了很少的控件。当我使用POST进行httpwebrequest时,是否需要考虑所有控件及其值?我只需要为其中一个控件执行POST。我可以只为那个控件做这件事吗?
b)应在“(HttpWebRequest)WebRequest.Create”中指定什么URL?我假设它是向用户显示的同一页面。例如,在下面的示例中,它是(“http://localhost/MyIdentity/Confirm.aspx?ID = New& Designer = True& Colors = Yes”);
c)我需要修改或处理标记或代码以实现httpwebrequest吗?
private void OnPostInfoClick(object sender, System.EventArgs e)
{
ASCIIEncoding encoding = new ASCIIEncoding();
string postData = ""; //Read from the stored array and print each element from the array loop here.
byte[] data = encoding.GetBytes(postData);
// Prepare web request...
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://localhost/MyIdentity/Confirm.aspx?ID=New&Designer=True&Colors=Yes");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = data.Length;
Stream newStream = myRequest.GetRequestStream();
// Send the data.
newStream.Write(data, 0, data.Length);
newStream.Close();
}
答案 0 :(得分:1)
您通常只会将其用于服务器到服务器的通信(不一定是页面到页面的数据传输)。
如果我正确理解您的帖子和问题,您似乎只想将POST数据发送到ASP.Net应用程序中的其他页面。如果是这样,您可以这样做的一种方法是简单地更改提交按钮的PostBackUrl
(表单目标)而不是正常的回发(到同一页面)。
还有其他方法,但这应该是最简单的。
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="foo.aspx" />
在上面,POST将发送到foo.aspx
,而不是POST回自身,您可以在那里检查/使用/处理POSTed数据。
根据您的评论进行更新:
您不必为此通过HttpWebRequest编写代码。普通的ASP.net WebForms模型可以帮到你。
鉴于这个简单的ASP.net Web表单页面:
<form id="form1" runat="server">
Coffee preference:
<asp:RadioButtonList ID="CoffeeSelections" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal">
<asp:ListItem>Latte</asp:ListItem>
<asp:ListItem>Americano</asp:ListItem>
<asp:ListItem>Capuccino</asp:ListItem>
<asp:ListItem>Espresso</asp:ListItem>
</asp:RadioButtonList>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
....
</form>
你的内联或代码背后会是这样的:
protected void Page_Load(object sender, EventArgs e)
{
//do whatever you want to do on Page_Load
}
protected void Button1_Click(object sender, EventArgs e)
{
//handle the button event
string _foo = CoffeeSelections.SelectedValue;
...
}