HttpWebRequest.Connection 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定 Connection
HTTP 標頭的值。
public:
property System::String ^ Connection { System::String ^ get(); void set(System::String ^ value); };
public string? Connection { get; set; }
public string Connection { get; set; }
member this.Connection : string with get, set
Public Property Connection As String
屬性值
Connection
HTTP 標頭的值。 預設值為 null
。
例外狀況
Connection 的值設定為 [保持運作] 或 [關閉]。
範例
下列程式代碼範例會使用 Connection 屬性來設定 Connection HTTP Header 的值。
int main()
{
try
{
// Create a new HttpWebRequest object. Make sure that
// a default proxy is set if you are behind a firewall.
HttpWebRequest^ myHttpWebRequest1 = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com" ));
myHttpWebRequest1->KeepAlive = false;
// Assign the response object of HttpWebRequest to a HttpWebResponse variable.
HttpWebResponse^ myHttpWebResponse1 = dynamic_cast<HttpWebResponse^>(myHttpWebRequest1->GetResponse());
Console::WriteLine( "\nThe HTTP request Headers for the first request are: \n {0}", myHttpWebRequest1->Headers );
Console::WriteLine( "Press Enter Key to Continue.........." );
Console::Read();
Stream^ streamResponse = myHttpWebResponse1->GetResponseStream();
StreamReader^ streamRead = gcnew StreamReader( streamResponse );
array<Char>^readBuff = gcnew array<Char>(256);
int count = streamRead->Read( readBuff, 0, 256 );
Console::WriteLine( "The contents of the Html page are.......\n" );
while ( count > 0 )
{
String^ outputData = gcnew String( readBuff,0,count );
Console::Write( outputData );
count = streamRead->Read( readBuff, 0, 256 );
}
Console::WriteLine();
// Close the Stream object.
streamResponse->Close();
streamRead->Close();
// Release the resources held by response object.
myHttpWebResponse1->Close();
// Create a new HttpWebRequest object for the specified Uri.
HttpWebRequest^ myHttpWebRequest2 = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com" ));
myHttpWebRequest2->Connection = "Close";
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse^ myHttpWebResponse2 = dynamic_cast<HttpWebResponse^>(myHttpWebRequest2->GetResponse());
// Release the resources held by response object.
myHttpWebResponse2->Close();
Console::WriteLine( "\nThe Http RequestHeaders are \n {0}", myHttpWebRequest2->Headers );
Console::WriteLine( "\nPress 'Enter' Key to Continue........." );
Console::Read();
}
catch ( ArgumentException^ e )
{
Console::WriteLine( "\nThe second HttpWebRequest Object* has raised an Argument Exception as 'Connection' Property is set to 'Close'" );
Console::WriteLine( "\n {0}", e->Message );
}
catch ( WebException^ e )
{
Console::WriteLine( "WebException raised!" );
Console::WriteLine( "\n {0}", e->Message );
Console::WriteLine( "\n {0}", e->Status );
}
catch ( Exception^ e )
{
Console::WriteLine( "Exception raised!" );
Console::WriteLine( "Source : {0} ", e->Source );
Console::WriteLine( "Message : {0} ", e->Message );
}
}
class HttpWebRequest_Connection
{
static void Main()
{
try
{
// Create a new HttpWebRequest object.Make sure that
// a default proxy is set if you are behind a firewall.
HttpWebRequest myHttpWebRequest1 =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest1.KeepAlive=false;
// Assign the response object of HttpWebRequest to a HttpWebResponse variable.
HttpWebResponse myHttpWebResponse1 =
(HttpWebResponse)myHttpWebRequest1.GetResponse();
Console.WriteLine("\nThe HTTP request Headers for the first request are: \n{0}",myHttpWebRequest1.Headers);
Console.WriteLine("Press Enter Key to Continue..........");
Console.Read();
Stream streamResponse=myHttpWebResponse1.GetResponseStream();
StreamReader streamRead = new StreamReader( streamResponse );
Char[] readBuff = new Char[256];
int count = streamRead.Read( readBuff, 0, 256 );
Console.WriteLine("The contents of the Html page are.......\n");
while (count > 0)
{
String outputData = new String(readBuff, 0, count);
Console.Write(outputData);
count = streamRead.Read(readBuff, 0, 256);
}
Console.WriteLine();
// Close the Stream object.
streamResponse.Close();
streamRead.Close();
// Release the resources held by response object.
myHttpWebResponse1.Close();
// Create a new HttpWebRequest object for the specified Uri.
HttpWebRequest myHttpWebRequest2 =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com");
myHttpWebRequest2.Connection="Close";
// Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
HttpWebResponse myHttpWebResponse2 =
(HttpWebResponse)myHttpWebRequest2.GetResponse();
// Release the resources held by response object.
myHttpWebResponse2.Close();
Console.WriteLine("\nThe Http RequestHeaders are \n{0}",myHttpWebRequest2.Headers);
Console.WriteLine("\nPress 'Enter' Key to Continue.........");
Console.Read();
}
catch(ArgumentException e)
{
Console.WriteLine("\nThe second HttpWebRequest object has raised an Argument Exception as 'Connection' Property is set to 'Close'");
Console.WriteLine("\n{0}",e.Message);
}
catch(WebException e)
{
Console.WriteLine("WebException raised!");
Console.WriteLine("\n{0}",e.Message);
Console.WriteLine("\n{0}",e.Status);
}
catch(Exception e)
{
Console.WriteLine("Exception raised!");
Console.WriteLine("Source :{0} " , e.Source);
Console.WriteLine("Message :{0} " , e.Message);
}
}
}
Class HttpWebRequest_Connection
Shared Sub Main()
Try
' Create a new 'HttpWebRequest' object for the specified Uri. Make sure that
' a default proxy is set if you are behind a firewall.
Dim myHttpWebRequest1 As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com"), HttpWebRequest)
myHttpWebRequest1.KeepAlive = False
' Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
Dim myHttpWebResponse1 As HttpWebResponse = CType(myHttpWebRequest1.GetResponse(), HttpWebResponse)
Console.WriteLine(ControlChars.Cr + "The HTTP request Headers for the first request are {0}", myHttpWebRequest1.Headers)
Console.WriteLine("Press Enter Key to Continue..........")
Console.Read()
Dim streamResponse As Stream = myHttpWebResponse1.GetResponseStream()
Dim streamRead As New StreamReader(streamResponse)
Dim readBuff(256) As [Char]
Dim count As Integer = streamRead.Read(readBuff, 0, 256)
Console.WriteLine("The contents of the Html page are......." + ControlChars.Cr)
While count > 0
Dim outputData As New [String](readBuff, 0, count)
Console.Write(outputData)
count = streamRead.Read(readBuff, 0, 256)
End While
' Close the Stream object.
streamResponse.Close()
streamRead.Close()
' Release the resources held by response object.
myHttpWebResponse1.Close()
Console.WriteLine()
' Create a new 'HttpWebRequest' object to the specified Uri.
Dim myHttpWebRequest2 As HttpWebRequest = CType(WebRequest.Create("http://www.contoso.com"), HttpWebRequest)
myHttpWebRequest2.Connection = "Close"
' Assign the response object of 'HttpWebRequest' to a 'HttpWebResponse' variable.
Dim myHttpWebResponse2 As HttpWebResponse = CType(myHttpWebRequest2.GetResponse(), HttpWebResponse)
' Release the resources held by response object.
myHttpWebResponse2.Close()
Console.WriteLine(ControlChars.Cr + "The Http RequestHeaders are " + ControlChars.Cr + "{0}", myHttpWebRequest2.Headers)
Console.WriteLine(ControlChars.Cr + "Press 'Enter' Key to Continue.........")
Console.Read()
Catch e As ArgumentException
Console.WriteLine(ControlChars.Cr + "The second HttpWebRequest object has raised an Argument Exception as 'Connection' Property is set to 'Close'")
Console.WriteLine(ControlChars.Cr + "{0}", e.Message)
Catch e As WebException
Console.WriteLine("WebException raised!")
Console.WriteLine(ControlChars.Cr + "{0}", e.Message)
Console.WriteLine(ControlChars.Cr + "{0}", e.Status)
Catch e As Exception
Console.WriteLine("Exception raised!")
Console.WriteLine("Source :{0} ", e.Source)
Console.WriteLine("Message : {0}", e.Message)
End Try
End Sub
End Class
備註
謹慎
WebRequest
、HttpWebRequest
、ServicePoint
和 WebClient
已經過時,您不應該將它們用於新的開發。 請改用 HttpClient。
要求會將 Connection 屬性傳送至因特網資源做為 Connection
HTTP 標頭。 如果 KeepAlive 屬性的值是 true
,則會將 “Keep-alive” 值附加至 Connection
標頭的結尾。
若要清除 Connection
HTTP 標頭,請將 Connection 屬性設定為 null
。
呼叫 GetRequestStream、BeginGetRequestStream、GetResponse或 BeginGetResponse 方法,以在要求啟動之後變更 Connection 屬性會擲回 InvalidOperationException。
注意
此屬性的值會儲存在 WebHeaderCollection中。 如果已設定 WebHeaderCollection,屬性值就會遺失。