1
我想重用一個WebRequest對象,以便cookie和會話將被保存以便稍後請求到服務器。以下是我的代碼。如果我在第二次使用Post函數兩次寫入開始後無法設置此屬性!在一個C#WebRequest對象
request.ContentLength = byteArray.Length;
它會拋出一個異常
寫作開始後,這個屬性不能被設置!
但你可以看到
dataStream.Close();
應該關閉寫入過程!任何人都知道發生了什麼事?
static WebRequest request;
public MainForm()
{
request = WebRequest.Create("http://localhost/admin/admin.php");
}
static string Post(string url, string data)
{
request.Method = "POST";
byte[] byteArray = Encoding.UTF8.GetBytes(data);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
dataStream.Close();
response.Close();
request.Abort();
return responseFromServer;
}
會話如何? (這是否與cookie相同?) – EBAG 2010-04-17 22:42:56
會話通常使用cookie來實現。 – dtb 2010-04-17 22:43:38
我雖然那個PHP會話是服務器端的事情!所以他們基於cookie? – EBAG 2010-04-17 22:44:35