HTTP 请求 GET/POST
HTTP request GET/POST
我在 visual studio 2010 年创建网站。因此,我应该打开一个新表格并从第一个表格发送信息。我使用了文本文件(我从第一页写到文件并以新的形式读取这个文件)并且这是有效的。但我想通过 GET/POST 请求创建连接。我从 获得此代码。
项目正在编译,但超过了时间限制。所以,底部我附上了代码和错误。
第一页的代码
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var postData = text;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
第二页的代码
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
错误
Operation timed out
Description: An unhandled exception occurred while executing the current web request. Examine the stack trace for more information about this error and the code snippet that caused it.
Exception Details: System.Net.WebException: The operation timed out
Source error:
136: }
137:
138: var response = (HttpWebResponse)request.GetResponse(); // Error here
139:
140: var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
我尝试了源代码的第二个变体,但出现错误。所以,请帮助我
你可以这样试试
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var postData = text;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
所以有很多方法可以将数据和“事物”从一个网页发送到下一个网页。
Session() 当然是一种可行的方式os。
另一种是在URL中使用参数,因此您经常在许多网站上看到
甚至在我写这篇文章时 post - 我们在 Whosebug 上看到的 URL 是这样的:
whosebug.com/questions/66294186/http-request-get-post?noredirect=1#comment117213494_66294186
所以,上面是堆栈溢出传递值的方式。
因此 URL os 中的 session() 和参数很常见。
但是,asp.net net 有一个“功能”,您可以在其中将上一页传递到下一页。因此,从您加载的下一页中的第一页简单地 pluck/get/grab/use 事情就变得很简单了。所以此功能是 asp.net 的一部分,它将为您完成传递上一页的所有脏活!!!
嗯,我想知道人们是否必须通过并从上一页获取值?我敢打赌这个 most 共同的想法一定已经被处理了,对吧?这不仅是一件很常见的事情,比如人类如何呼吸空气?这也是 asp.net.
的一个特点
所以,一个真正简单的方法就是当您单击一个按钮时,然后跳转到下一个有问题的页面?好吧,如果设置正确,那么您可以简单地使用“上一个”页面!!!
您可以在页面加载时执行此操作:
if (IsPostBack == false)
{
TextBox txtCompay = PreviousPage.FindControl("txtCompnay");
Debug.Print("Value of text box company on prevous page = " + txtCompay.Text);
}
这种方法很好,因为您真的不必提前决定是否要从上一页的控件中获取 2 个或 20 个值 - 您真的不在乎。
这是如何工作的?
上一页仅基于两种方法有效。
第一种方式:
您放在表单上的按钮通常会有“代码隐藏”,当然可以跳转或转到下一页。
该命令(在后面的代码中)是典型的:
Response.Redirect("some aspx web page to jump to")
以上未通过上一页
但是,如果你使用这个:
Server.Transfer("some aspx web page to jump to")
那么上一页已通过,可以使用了!!!!
所以在下一页中,在页面加载事件中,您可以按照上面的方式使用“prevouspage”。
所以 Server.Transfer(“到下一页”)将允许在您的代码中使用“上一页”。
因此您可以选取任何控件、任何值。您甚至可以引用 gridview 和用户选择的行。实际上,整个上一页都已传输并可按上述方式在“上一页”中使用。您不能获取视图状态,但您可以在上一页中设置 public 方法来扩展 ose 视图状态成员(如果还需要的话)。
当然要用到FindControl了,不过是上一页。
另一种方式(允许使用上一页)。
你没有使用代码隐藏来触发跳转到新页面(使用Server.Transfer()),但是你设置了post-back URL第一页中的按钮。这就是 post-back URL 的用途!!! (将当前页面传递给 post-back URL)。
例如:
<asp:Button ID="Button1" runat="server" Text="View Hotels"
PostBackUrl="~/HotelGrid.aspx" />
因此您使用按钮的“post back”URL 功能。
现在,当你点击那个按钮时,它会跳转到第2页,并且可以像上面一样使用上一页。当然,如果设置了 post-back URL,那么您当然不需要存根代码来跳转到该页面。
所以这是 asp.net 的“基本”功能,并且是将上一页转移到下一页的内置方法。有点像 asp.net "101".
所以这可能是常见的,事实上最常见的基本需要从以前的网页传递值不仅是内置的,而且它实际上被称为“前一页”!!!!!
规则:
Previous page only works if you use a Server.Transfer("to the page")
Response.Request("to the page") does NOT allow use of previous page.
using the post-back URL of a button (or in fact many other controls) also
have a post-back URL setting - and again if that control has post-back URL, then
again use of previous page is allowed due to that control causing such page
navagation.
The previous page can ONLY be used on the first page load (ispostBack = False).
在按钮中使用post-back URL当然意味着页面跳转不需要代码隐藏存根。再一次,使用 post-back URL 将确保上一页可以在下一页中使用。
但是,在您不想对 URL 进行硬编码的 os 情况下,或者在导航到下一个按钮之前,该按钮代码存根中可能会出现一些附加逻辑页? (或者甚至会发生??)。
那么好吧 post-back URL 并不是那么实用,但是你可以在后面的代码中诉诸并使用 Server.Transfer() ,然后再次这样做允许使用内置的“上一页”。
请记住,无论您 need/want/will 从上一页抓取什么,都必须在我们跳转到的那个页面的第一页加载时发生。在第一个页面加载发生后,任何附加按钮 post back 和常规生命周期以及该页面后面代码中控件和事件的使用将不会使用上一页。 (上一页将为空)。
我在 visual studio 2010 年创建网站。因此,我应该打开一个新表格并从第一个表格发送信息。我使用了文本文件(我从第一页写到文件并以新的形式读取这个文件)并且这是有效的。但我想通过 GET/POST 请求创建连接。我从 获得此代码。 项目正在编译,但超过了时间限制。所以,底部我附上了代码和错误。
第一页的代码
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var postData = text;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
第二页的代码
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
错误
Operation timed out
Description: An unhandled exception occurred while executing the current web request. Examine the stack trace for more information about this error and the code snippet that caused it.
Exception Details: System.Net.WebException: The operation timed out
Source error:
136: }
137:
138: var response = (HttpWebResponse)request.GetResponse(); // Error here
139:
140: var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
我尝试了源代码的第二个变体,但出现错误。所以,请帮助我
你可以这样试试
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx");
var postData = text;
var data = Encoding.ASCII.GetBytes(postData);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
HttpWebResponse httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
result = streamReader.ReadToEnd();
}
所以有很多方法可以将数据和“事物”从一个网页发送到下一个网页。
Session() 当然是一种可行的方式os。
另一种是在URL中使用参数,因此您经常在许多网站上看到
甚至在我写这篇文章时 post - 我们在 Whosebug 上看到的 URL 是这样的:
whosebug.com/questions/66294186/http-request-get-post?noredirect=1#comment117213494_66294186
所以,上面是堆栈溢出传递值的方式。
因此 URL os 中的 session() 和参数很常见。
但是,asp.net net 有一个“功能”,您可以在其中将上一页传递到下一页。因此,从您加载的下一页中的第一页简单地 pluck/get/grab/use 事情就变得很简单了。所以此功能是 asp.net 的一部分,它将为您完成传递上一页的所有脏活!!!
嗯,我想知道人们是否必须通过并从上一页获取值?我敢打赌这个 most 共同的想法一定已经被处理了,对吧?这不仅是一件很常见的事情,比如人类如何呼吸空气?这也是 asp.net.
的一个特点所以,一个真正简单的方法就是当您单击一个按钮时,然后跳转到下一个有问题的页面?好吧,如果设置正确,那么您可以简单地使用“上一个”页面!!!
您可以在页面加载时执行此操作:
if (IsPostBack == false)
{
TextBox txtCompay = PreviousPage.FindControl("txtCompnay");
Debug.Print("Value of text box company on prevous page = " + txtCompay.Text);
}
这种方法很好,因为您真的不必提前决定是否要从上一页的控件中获取 2 个或 20 个值 - 您真的不在乎。
这是如何工作的?
上一页仅基于两种方法有效。
第一种方式:
您放在表单上的按钮通常会有“代码隐藏”,当然可以跳转或转到下一页。
该命令(在后面的代码中)是典型的:
Response.Redirect("some aspx web page to jump to")
以上未通过上一页
但是,如果你使用这个:
Server.Transfer("some aspx web page to jump to")
那么上一页已通过,可以使用了!!!!
所以在下一页中,在页面加载事件中,您可以按照上面的方式使用“prevouspage”。
所以 Server.Transfer(“到下一页”)将允许在您的代码中使用“上一页”。
因此您可以选取任何控件、任何值。您甚至可以引用 gridview 和用户选择的行。实际上,整个上一页都已传输并可按上述方式在“上一页”中使用。您不能获取视图状态,但您可以在上一页中设置 public 方法来扩展 ose 视图状态成员(如果还需要的话)。
当然要用到FindControl了,不过是上一页。
另一种方式(允许使用上一页)。
你没有使用代码隐藏来触发跳转到新页面(使用Server.Transfer()),但是你设置了post-back URL第一页中的按钮。这就是 post-back URL 的用途!!! (将当前页面传递给 post-back URL)。
例如:
<asp:Button ID="Button1" runat="server" Text="View Hotels"
PostBackUrl="~/HotelGrid.aspx" />
因此您使用按钮的“post back”URL 功能。
现在,当你点击那个按钮时,它会跳转到第2页,并且可以像上面一样使用上一页。当然,如果设置了 post-back URL,那么您当然不需要存根代码来跳转到该页面。
所以这是 asp.net 的“基本”功能,并且是将上一页转移到下一页的内置方法。有点像 asp.net "101".
所以这可能是常见的,事实上最常见的基本需要从以前的网页传递值不仅是内置的,而且它实际上被称为“前一页”!!!!!
规则:
Previous page only works if you use a Server.Transfer("to the page")
Response.Request("to the page") does NOT allow use of previous page.
using the post-back URL of a button (or in fact many other controls) also
have a post-back URL setting - and again if that control has post-back URL, then
again use of previous page is allowed due to that control causing such page
navagation.
The previous page can ONLY be used on the first page load (ispostBack = False).
在按钮中使用post-back URL当然意味着页面跳转不需要代码隐藏存根。再一次,使用 post-back URL 将确保上一页可以在下一页中使用。
但是,在您不想对 URL 进行硬编码的 os 情况下,或者在导航到下一个按钮之前,该按钮代码存根中可能会出现一些附加逻辑页? (或者甚至会发生??)。
那么好吧 post-back URL 并不是那么实用,但是你可以在后面的代码中诉诸并使用 Server.Transfer() ,然后再次这样做允许使用内置的“上一页”。
请记住,无论您 need/want/will 从上一页抓取什么,都必须在我们跳转到的那个页面的第一页加载时发生。在第一个页面加载发生后,任何附加按钮 post back 和常规生命周期以及该页面后面代码中控件和事件的使用将不会使用上一页。 (上一页将为空)。