C# 坚持使用httpwebrequest
我在使用httpwebrequest时有点困惑。我试图研究一些文章,但由于我是第一次这样做,所以没能从中获得太多。下面是我正在尝试的代码,我有几个问题 a) ASPX页面定义了几个控件,在代码隐藏中我创建了几个控件。当我用POST做HTTPWebRebug时,我需要考虑所有控件和它们的值吗?我只需要为其中一个控件做POST。我可以只为那个控制而做吗 b) 在“(HttpWebRequest)WebRequest.Create”中应该指定什么URL?我假设显示给用户的是同一个页面。例如,在我下面的示例中,它是(“http://localhost/MyIdentity/Confirm.aspx?ID=New&Designer=True&Colors=Yes"); c) 为了实现httpwebrequest,在标记或代码中还有什么需要修改或处理的吗C# 坚持使用httpwebrequest,c#,asp.net,url,httpwebrequest,http-post,C#,Asp.net,Url,Httpwebrequest,Http Post,我在使用httpwebrequest时有点困惑。我试图研究一些文章,但由于我是第一次这样做,所以没能从中获得太多。下面是我正在尝试的代码,我有几个问题 a) ASPX页面定义了几个控件,在代码隐藏中我创建了几个控件。当我用POST做HTTPWebRebug时,我需要考虑所有控件和它们的值吗?我只需要为其中一个控件做POST。我可以只为那个控制而做吗 b) 在“(HttpWebRequest)WebRequest.Create”中应该指定什么URL?我假设显示给用户的是同一个页面。例如,在我下面的
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();
}
您通常只将其用于服务器到服务器的通信(不一定用于页到页的数据传输)
如果我正确理解了您的帖子和问题,您似乎只是想将帖子数据发送到ASP.Net应用程序中的其他页面。如果是这样,一种方法就是简单地更改提交按钮(表单目标)的PostBackUrl
,而不是正常的回发(到同一页面)
还有其他方法,但这应该是最简单的
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="foo.aspx" />
您的内联或代码隐藏将如下所示:
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;
...
}
谢谢你的回复。不,我没有试图发布到另一个页面,但它是同一个页面。基本上,在页面的Onload中,我调用httpwebrequest,我希望同一个页面显示POST数据,这样就不需要做任何“额外”的事情了。您可以处理回发数据(这是默认的asp.net web表单行为)。因此,在上面的示例中,我如何处理以下内容:我有一个在运行时生成的图像控件,而imageUrl太长。由于这个原因,我将采用POST方法。但是,当显示页面时,是否会正确显示图像?在上面的代码中,我需要提到image control?更新了答案,以显示如何处理发布的数据(单向)。如果愿意,还可以检查请求数据。提供更多关于“图片url太长”的详细信息,或者如果上述概念不能让你达到目的,就提出一个新问题……谢谢,但我正在做的就是这样。在OnLoad()中,我创建imageControl并将XML文件中的URL分配给它。然后我解析URL,仍然发现URL长度更长(超过3000个字符)。然后我创建一个数组,数组元素基本上是URL中的值,每个“&”都是一个数组元素。然后,我循环该数组并在上面的httpwebrequest代码中创建POSTDATA。因此,我的困惑是,当发布数据完成并显示我的页面时,图像将如何显示以及图像的URL值是多少?
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;
...
}