我在visual studio 2010上創建網站。所以,我應該打開一個新的表格,并從第一個表格中發送資訊。我使用了文本檔案(我從拳頭頁面寫到檔案,然后在新的表單中讀取這個檔案),這很有效。但是我想通過GET/POST請求創建連接。我從How to make an HTTP POST web request中得到這個代碼。 專案是可以編譯的,但超過了時間限制。所以,我在下面附上了代碼和錯誤。
第一頁的代碼
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx") 。
var postData = text;
var data = Encoding.ASCII.GetBytes(postData)。
request.Method = "POST"/span>;
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"/span>);
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream() ).ReadToEnd()。
錯誤
Operation timed out。
描述。在執行當前Web請求時發生了一個未處理的例外。檢查堆疊跟蹤以獲得更多關于這個錯誤和導致它的代碼片段的資訊。
例外細節。System.Net.WebException。操作超時了out。
源頭錯誤。
136。 }
137:
138: var response = (HttpWebResponse)request.GetResponse(); // Error here.
139:
140: var responseString = new StreamReader(response.GetResponseStream() ).ReadToEnd()。
我試了一下,從源頭上的第二個變體,但得到了錯誤。所以,請幫助我
uj5u.com熱心網友回復:
因此,有相當多的方法可以將資料和 "東西 "從一個網頁發送到下一個網頁。
Session() 當然是一種可能的方法。
另一種方法是在 URL 中使用引數,因此你經常在許多網站上看到這種情況
。甚至在我寫這篇文章時--我們在StackOverFlow上看到的URL是這樣的:
stackoverflow.com/questions/66294186/http-request-get-post?noredirect=1#comment117213494_66294186所以,以上就是stack overflow的傳值方式。
因此,session()和URL中的引數是常見的。
然而,asp.net net有一個 "功能",你可以將前一個頁面傳遞給下一個。因此,在你加載的下一個頁面中簡單地摘取/獲取/抓取/使用第一個頁面中的東西就成為了一件簡單的事情。因此,這個功能是 asp.net 的一部分,它將為你完成傳遞前一個頁面的所有骯臟作業!
嗯,我想知道的是,如果你想讓你的網站變得更好,那么你就必須讓它變得更好。
嗯,我想知道人們是否需要從前一個頁面傳遞和獲取值?我打賭這個最常見的想法一定是被處理過的,對嗎?而且這不僅是一個常見的事情,比如說像人類如何呼吸空氣?它也是asp.net的一個特點。
那么,一個非常簡單的方法就是當你點擊一個按鈕,然后跳到下一個相關頁面?好吧,如果事情設定正確,那么你可以簡單地使用 "上一個 "頁面!
你可以在一個頁面上這樣做。
你可以在頁面加載時這樣做:
if (IsPostBack == false)
{
TextBox txtCompay = PreviousPage.FindControl("txtCompnay") 。
Debug.Print("上一頁的文本框公司的價值=" txtCompay.Text)。
}
這種方法很好,因為你真的不需要提前決定是要前一頁的控制元件的2個還是20個值--你真的不在乎。
這個方法是如何運作的?
前一頁只基于兩種方法有效。
第一種方法:
您在表單上投放的按鈕通常會有 "后面的代碼",當然會跳轉或轉到相關的下一個頁面。
該命令(后面的代碼)是典型的這樣:
該命令(后面的代碼)是典型的這樣。
Response.Redirect("某個aspx網頁跳轉到")
上面的內容不會傳遞上一頁
然而,如果你使用這個:Server.Transfer("some aspx web page to jump to"/span>)
那么前一個頁面就被通過了,你可以使用它!!!!
。所以在下一個頁面中,在頁面加載事件中,你可以按照上述方法使用 "prevouspage"。
所以Server.Transfer("to the next page") 將允許在你的代碼中使用 "previous page"。
因此你可以拾取任何控制元件,任何值。你甚至可以參考一個網格視圖和用戶選擇的行。實際上,整個前一頁被轉移并可用于上述 "前一頁 "中。你不能抓取viewstate,但是你可以在前一個頁面中設定公共方法來暴露viewstate的成員,如果這也是需要的。
你當然必須使用FindControl,但這是前一個頁面。
另一種方法(允許使用前一個頁面)。
你不使用后面的代碼來觸發跳轉到新的頁面(使用Server.Transfer()),但你在第一頁的按鈕中設定了post-back URL。(將當前頁面傳遞給回傳URL)。
例如這樣:
<asp:Button ID="Button1" runat=" server" Text="View Hotels"
PostBackUrl="~/HotelGrid.aspx" />
因此你使用了按鈕的 "回貼 "URL功能。
現在,當你點擊該按鈕時,它將跳轉到第二頁,并再次按上述方法使用前一頁。當然,如果設定了回傳 URL,那么你當然不需要在存根后面添加代碼來跳轉到該頁面。
因此這在很大程度上是asp.net的一個 "基本 "功能,并且是將前一個頁面轉移到下一個頁面的內置手段。這有點像asp.net的 "101"。
因此,這也許是很常見的,實際上是最常見的基本需求,從前一個網頁傳遞值不僅是內置的,而且事實上它被稱為 "前一個頁面"!!!!!
規則:
上一頁只在如果你使用Server.Transfer("to the page")
Response.Request("to the page")不允許使用以前的頁面。
使用后按鈕(或 在事實上許多其他控制)也
有一個post-back URL設定 - 和再次如果該控制元件有post-back URL,那么
由于該控制元件導致了這樣的頁面導航,再次使用前一個頁面是允許的。
導航。
前一頁只能在第一頁加載(ispostBack = False)時使用。
在一個按鈕中使用post-back URL當然意味著存根后面的代碼是不需要頁面跳轉的。而且再一次,使用post-back URL將確保前一個頁面可以在下一個頁面中使用。
然而,在那些你不想硬編碼URL的情況下,或者在導航到下一頁之前,按鈕代碼存根中可能會出現一些額外的邏輯?(
那么好的回傳 URL 就不那么實用了,但是您可以在后面的代碼中使用 Server.Transfer() ,并且再次允許使用內置的 "前一頁"。
請記住,無論你需要/想要/將要從前一頁抓取什么,都必須在我們跳轉到的那個頁面的第一個頁面加載時發生。任何額外的回貼按鈕和常規的生命周期以及該頁后面的代碼中的控制元件和事件的使用,都不會在第一次頁面加載發生后使用前一頁。(前一頁將是空的)。
uj5u.com熱心網友回復:
你可以用這種方式試試。
var request = (HttpWebRequest)WebRequest.Create("http://localhost:55590/WebSite2/Form2.aspx"/span>);
var postData = text;
var data = Encoding.ASCII.GetBytes(postData)。
request.Method = "POST"/span>;
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();
使用(StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())
{
result = streamReader.ReadToEnd();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/317256.html
標籤:
