Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 坚持使用httpwebrequest_C#_Asp.net_Url_Httpwebrequest_Http Post - Fatal编程技术网

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?我假设显示给用户的是同一个页面。例如,在我下面的

我在使用httpwebrequest时有点困惑。我试图研究一些文章,但由于我是第一次这样做,所以没能从中获得太多。下面是我正在尝试的代码,我有几个问题

a) ASPX页面定义了几个控件,在代码隐藏中我创建了几个控件。当我用POST做HTTPWebRebug时,我需要考虑所有控件和它们的值吗?我只需要为其中一个控件做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();
}
您通常只将其用于服务器到服务器的通信(不一定用于页到页的数据传输)

如果我正确理解了您的帖子和问题,您似乎只是想将帖子数据发送到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;
   ...
}